Javascript 在Redux mapDispatchToProps中使用组件状态或道具
我是一个Redux/React初学者,仍然试图在Redux生态系统中围绕Javascript 在Redux mapDispatchToProps中使用组件状态或道具,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,我是一个Redux/React初学者,仍然试图在Redux生态系统中围绕dispatch的组件来完成我的任务。到目前为止,我在组件中发布Redux操作的方式是直接调用组件道具的dispatch()函数: const mapStateToProps = (state) => { return {searchType: state.searchType} } export default connect(mapStateToProps)(SearchForm); 然后,我将一个处理函数
dispatch
的组件来完成我的任务。到目前为止,我在组件中发布Redux操作的方式是直接调用组件道具的dispatch()
函数:
const mapStateToProps = (state) => {
return {searchType: state.searchType}
}
export default connect(mapStateToProps)(SearchForm);
然后,我将一个处理函数绑定到onClick
事件:
handleOptionChange(changeEvent) {
this.setState({selectedOption: changeEvent.target.value});
this.props.dispatch(setSearchType(this.state.selectedOption));
}
但是,我一直在尝试实现mapDispatchToProps
。本文介绍了使用mapDispatchToProps
而不是简单地使用This.props.dispatch
的一些好处。然而,我一直在努力寻找一种方法,将我的组件道具或状态集成到mapDispatchToProps
。我想写这样的东西:
const mapDispatchToProps = (dispatch) => {
return {
setSearchType : dispatch(setSearchType(this.props.option))
}
}
this.props.option
是一个向下传递的道具,用于标识为特定按钮(在此为单选按钮)选择的配置。然后简单地打电话:
handleOptionChange(changeEvent) {
this.setState({selectedOption: changeEvent.target.value});
this.props.setSearchType(); // <--- this line is new
}
handleOptionChange(changeEvent){
this.setState({selectedOption:changevent.target.value});
这个.props.setSearchType();//只需将您的调度程序定义为一个接受props作为参数的函数:
const mapDispatchToProps = (dispatch) => {
return {
setSearchType : option => dispatch(setSearchType(option))
}
}
然后在调用时传递参数:
this.props.setSearchType(this.props.option)
不过,在每次渲染时都要注意绑定onClick到函数时的性能问题。有关更多信息,请参阅文章。坦白地说,我看不出真正的问题。您可以自由地将任何数据传递到mapDispatchToProps
的函数中,包括这个
对象。哇。这是一个非常简单的答案。我有点不好意思,我没有想到这一点通过。我建议对mapDispatch
:connect(null,{setSearchType})(MyComponent)
使用“对象速记”。