【发布时间】:2017-03-03 06:07:20
【问题描述】:
我对 react 和 redux 很陌生。我正在尝试将数据从一个组件传递到另一个组件。但它没有父子关系,并且彼此独立。谁能帮我做到这一点?下面是我的代码。
export class EmpSearch extends React.Component {
constructor(props) {
super(props);
this.state = {
Empnumber: ''
};
}
updateEmpNumber(e) {
this.setState({Empnumber: e.target.value});
}
render() {
return (
<div className="row">
<form>
<div className="form-group">
<label htmlFor="Empnumber">Emp Number</label>
<input type="text" className="form-control" id="Empnumber" placeholder="Emp Number" value={this.state.Empnumber} onChange={this.updateEmpNumber.bind(this)}/>
</div>
</form>
</div>
);
}
}
function mapStateToProps(state){
return{
Empnumber: state.Empnumber
};
}
export default connect(mapStateToProps)(EmpSearch);
另一个文件是我要发送的地方,EmpNumber 在下面,
class EmpDetail extends React.Component {
render() {
return (
<div className="container">
<input type="text"/>
</div>
);
}
}
export default EmpDetail;
【问题讨论】:
-
你创建reducer函数了吗?如果没有,那么您必须创建一个 reducer 函数并调度一个动作
updateEmpNumber函数。然后你可以从 redux 商店访问EmpNumber。 -
不,我没有创建它,因为我不知道如何创建它。如果可以帮助我,将非常有帮助。
-
我不确定如何调度和操作以及如何创建reducer。
-
Here 是基本的 ToDo List 示例,阅读本教程,看看是否可以自己创建。
-
啊,好吧,对不起,我重新阅读了这篇文章。我说的是正确的(因为该连接将允许您从 redux 存储中获取 EmpNumber)但正如其他人所提到的,您需要创建一个“reducer”并调度一个操作来更新 redux 存储中的 EmpNumber 值。我不知道你的架构,所以很难举个例子,最好只是试着了解一下这里的基本例子......redux.js.org/docs/basics/Actions.html和redux.js.org/docs/basics/Reducers.html