Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Redux状态以替换React组件内部状态_Reactjs_Redux_React Redux - Fatal编程技术网

Reactjs Redux状态以替换React组件内部状态

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

我想在我的web应用程序的多个组件中实现redux商店。基本上,我想将当前的内部状态迁移到redux

我以一台简单的收音机为例

没有redux的文件(仅内部状态):

//文件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);
}