假设我有一个 A 组件,可以呈现2个组件 B 和 C 。
B 和 C 会呈现出类别,cat_id
为props
。
他们将分别使用cat_id
调用 apiB 和 apiC 。
最好将cat_id
存储在父级( A )中,并将cat_id
作为props
传递给 B 和 C ?注意cat_id
是动态的,并存储为 A 中的状态对象。
当 A 致电setState
以更新cat_id
时, B 和 C 将调用{{{ 1}}。
或者更好的是在 A 中调用api,并将结果作为道具传递给 B 和 C ?< / p>
我问的原因是因为我现在正在使用选项1。子组件在单个页面加载上有4个渲染。我猜测父母中的componentDidUpdate
太多了。
我花了好几个小时尝试移动物品并改变setState
和componentDidUpdate
中的条件,但它看起来仍然很慢。
在我尝试选项2之前,想知道是否有人已经知道哪个是更好的React组件组合。
答案 0 :(得分:4)
我觉得你已经回答了一些问题。是的,在您的情况下,假设您现在只使用反应,我会在A
中进行API调用,并将数据作为道具传递给B
和C
。
如果你正在使用像redux这样的东西,你可以使用其他的组合选项,你可以触发一个动作,让减速器为你处理API调用,然后从那里更新你的商店。但如果您只是使用反应,选项2就完全没问题了。