私はcomponentDidMount
が最初のレンダリングのために一度だけ呼び出されますが、私はそれが複数回レンダリングされているのを見ています。なぜcomponentDidMountがreact.js&reduxで何度も呼び出されるのですか?
私は再帰的ループを作成したようです。
- componentDidMountがデータを受信すると、データ
- をフェッチするためにアクションをディスパッチするには、それは、Reduxの状態にデータを格納するために、成功のアクションを発生させます。
- 親コンポーネントはReduxのストアに接続され、上記ステップにおいてだけ変更エントリの
mapStateToProps
- 親は、子コンポーネントのcomponentDidMountが再び呼び出される(プログラム変数を介して選択される)の子コンポーネント
- をレンダリングした反応します
- それはデータ
私はそれが起こっていることだと思うを取得するアクションをdispaches。私は間違っているかもしれません。
ループを停止するにはどうすればよいですか?
プログラムで子コンポーネントをレンダリングするコードは次のとおりです。
function renderSubviews({viewConfigs, viewConfig, getSubviewData}) {
return viewConfig.subviewConfigs.map((subviewConfig, index) => {
let Subview = viewConfigRegistry[subviewConfig.constructor.configName]
let subviewData = getSubviewData(subviewConfig)
const key = shortid.generate()
const subviewLayout = Object.assign({}, subviewConfig.layout, {key: key})
return (
<div
key={key}
data-grid={subviewLayout}
>
<Subview
{...subviewData}
/>
</div>
)
})
}
うわー、答えに感謝します。私は尋ねたことがはっきりしていなかったので私の質問に言い返すために戻ってきました。そして、なぜそれが起こっているのかを説明する答えがあります。ありがとうございます – eugene
私はこの答えからトンを学んだ!反応から非常にエレガントなアプローチ – cbartondock