在使用mapDispatchToProps初始化之前,Redux无法访问操作创建者
我已经想了好几个小时了,但是没有进展 问题:我在这一行遇到错误“初始化前无法访问”:在使用mapDispatchToProps初始化之前,Redux无法访问操作创建者,redux,react-redux,Redux,React Redux,我已经想了好几个小时了,但是没有进展 问题:我在这一行遇到错误“初始化前无法访问”: const mapDispatchToProps = { changeGreen }; 我正在从索引导出我的动作创建者,如下所示: export const changeGreen = () => { return { type: GREEN_ON }; }; 我正在导入MyComponent.js,如下所示: import { changeGreen } from "./index"
const mapDispatchToProps = { changeGreen };
我正在从索引导出我的动作创建者,如下所示:
export const changeGreen = () => {
return {
type: GREEN_ON
};
};
我正在导入MyComponent.js,如下所示:
import { changeGreen } from "./index";
const mapDispatchToProps = { changeGreen };
export default connect(
mapStateToProps,
mapDispatchToProps
)(MyComponent);
我将映射到组件文件中的dispatch,如下所示:
import { changeGreen } from "./index";
const mapDispatchToProps = { changeGreen };
export default connect(
mapStateToProps,
mapDispatchToProps
)(MyComponent);
我的App.js看起来像:
function App() {
return (
<div className='App'>
<TrafficLight />
</div>
);
}
函数应用程序(){
返回(
);
}
我正在使用提供商包装应用程序,如下所示:
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById("root")
);
ReactDOM.render(
,
document.getElementById(“根”)
);
感谢您的帮助。解决了这个问题,在render语句之前我没有初始化动作创建者 通过在render语句之前添加此项修复了此问题
changeGreen = () => {
this.props.changeGreen();
};
你需要将你的动作映射到道具和调度,它应该如下所示
const mapDispatchToProps = (dispatch: any) => {
return {
changeGreen : bindActionCreators<any, any>(changeGreen , dispatch)
}
}
const-mapDispatchToProps=(调度:任意)=>{
返回{
changeGreen:bindActionCreators(changeGreen,调度)
}
}
然后您可以这样称呼它-this.props.changeGreen()