0
componentWillReceivePropsが私の下のコードで2回呼び出されました。理由は分かりません。 2回呼び出すことでそれを防ぐ方法は?componentWillReceivePropsがreact + reduxで2回呼び出されました
export class EmpSearch extends React.Component {
constructor(props) {
super(props);
this.state = {
Empnumber: ''
};
this.updateEmpNumber = this.updateEmpNumber.bind(this);
}
updateEmpNumber(e) {
this.props.dispatch({
type: 'UPDATE_EMP_NUMBER',
payload: 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);
のemp detalsページには、私はcomponentWillReceivePropsを呼び出していますどこ下回っており、これで私はAPIを呼び出し、状態を設定しています。
class EmpDetail extends React.Component {
constructor(props) {
super(props);
this.state = {
};
}
componentWillReceiveProps(nextProps) {
this.GetData(nextProps);
}
GetData(props){
//Making and API call and Set the state
}
render() {
const empNumber = this.props.Empnumber;
return (
<div className="container">
Empnumber = {empNumber}
</div>
);
}
}
function mapStateToProps(state){
return {
Empnumber: state.Empnumber
}
}
export default connect(mapStateToProps)(EmpDetail);
なぜ、 'updateEmpNumber'メソッドが2回定義されていますか? – Dhiraj
いいえ、私はコードで述べたように一度だけ定義しました。 – user2768132
あなたは2つの 'updateEmpNumber'を持っています – CodinCat