Reactjs Redux状态以替换React组件内部状态
我想在我的web应用程序的多个组件中实现redux商店。基本上,我想将当前的内部状态迁移到redux 我以一台简单的收音机为例 没有redux的文件(仅内部状态):Reactjs Redux状态以替换React组件内部状态,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我想在我的web应用程序的多个组件中实现redux商店。基本上,我想将当前的内部状态迁移到redux 我以一台简单的收音机为例 没有redux的文件(仅内部状态): //文件Bool.js 从“React”导入React; 从“@material ui/core”导入{FormControlLabel、Grid、Radio、RadioGroup}; 类Bool扩展了React.Component{ 建造师(道具){ 超级(道具); 此.state={ 布尔:“还有” }; this.handl
//文件Bool.js
从“React”导入React;
从“@material ui/core”导入{FormControlLabel、Grid、Radio、RadioGroup};
类Bool扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
布尔:“还有”
};
this.handleChange=this.handleChange.bind(this)
}
handleChange=(evt)=>{
这是我的国家({
bool:evt.target.value
});
}
render(){
返回(
)
};
}
导出默认Bool
您可以在构造函数中放弃绑定到handleBool
在onChange
属性上使用箭头函数:
<RadioGroup
row
value={this.state.bool}
onChange={({ value })) => this.props.handleBool(value)}> // this is the action from redux
this.props.handleBool(value)}>//这是redux的操作
错误所在行中的该
正在当前类的上下文中搜索函数。由于该类没有函数handleBool
,因此该函数也不会this
,并且它将是未定义的
就像@jank的回答已经说的那样,你需要使用这个.props中的把手
<代码>连接
已自动将其绑定到分派功能,并将其添加到您的道具对象中
完全删除此行this.handleBool=this.handleBool.bind(this)
您可以添加这样的本地函数,这样onChange={this.handleBool}
将按预期工作
handleBool=(evt)=>{
this.props.handleBool(evt.target.value);
}