我的问题是,我把上面提到的方法放在哪里?因为在我想使用Redux商店的每个组件中,我基本上都需要重复的咒语
import { useSelector, useDispatch } from "react-redux";
import { bindActionCreators } from "redux";
import * as actions from "../../redux/actions";
然后,例如,
const dispatch = useDispatch();
const { fetchStats } = bindActionCreators(actions, dispatch);
我见过有人做像containers
文件夹?
另外,你的文件结构是什么?你们把动作放在哪里了?你是如何出口的?全部放在一个文件里还是什么?在更大的项目中,效率并不高。
一如既往,提前感谢!
答案是,不要。
bindActionCreators
实际上只在React Reduxconnect
函数内部使用过,应用程序代码通常不会使用。
今天,使用React-Redux钩子API,我们建议只手动编写:
const dispatch = useDispatch();
const handleClick = () => dispatch(someActionCreator())
这样一来,组件中实际发生的事情就更加明确了。
是的,这确实需要将钩子导入到组件中。这既是有意的,也是使用它们的必要条件,就像任何其他函数一样。
我们建议不要试图将";容器部件";,特别是如果您使用的是钩子API。
至于逻辑,你应该使用一个";特征文件夹";使用Redux Toolkit创建一个"文件结构";切片";包含逻辑的每个功能的文件。