なぜ関数が複数回wheh dispatchを呼び出す理由を知りたいと思います。また、やるべき方法はありますか
getData = (value) =>{
const body = {
value: value,
cn: "TH"
}
return body;
}
renderData(){
console.log("starts");
this.props.dispatch(queryData(this.getData(10)));// called repeatedly
}
render(){
return(
<div>{this.renderData()}</div>
)
}
_
私は同じタイプでさまざまなシナリオを更新しました、私は知っておく必要があります。
シナリオ2.
getData = () =>{
const body = {
value: value,
cn: "TH"
}
return body;
}
componentDidMount=()=>{
this.props.dispatch(queryData(this.getData()))
}
componentDidUpdate = () => {
const {allstate} = this.props.querydata
if(this.props.querydata){
this.renderState(allstate);
}
}
renderState = (data) => {
const getId = data.map(e=>e.id); //will get array of values [2, 3, 4]
getid.map(e=>
this.props.dispatch(queryState(e))); //for every id dispatch props,
)
}
render(){
// will gets this by componentDidMount call
return (
<div>
</div>
)
}
_
ビューにレンダリングがある場合は、renderData
関数が呼び出されるかどうかを呼び出し、これもまたコンポーネントを再レンダリングさせます。 1つの解決策をレンダリングの外側にthis.renderData()
関数を移動できます。constructor
またはcomponentDidMount