【发布时间】:2020-05-01 19:59:51
【问题描述】:
如何修改父组件中的状态,并将其作为 props 传递给子组件,但仅在修改后的状态更改时重新渲染这些子组件?
我的基本设置目前有效,但会导致一些不必要的重新渲染。父组件从 URL 获取信息(使用 react-router 钩子)并修改它,然后将其作为 props 传递给它的子组件。该组件如下所示:
const myComponent = () => {
const { dataType } = useParams();
const { search } = useLocation();
/// These functions help me transform that data into something more manageable
const y = queryString.parse(search).collection;
const { collections, gqlQuery } = getCollections(dataType);
const collection = collections.find(x => x.value === y);
return (
<MyChild collection={collection} /> ... This component is re-rendering unnecessarily.
)
};
如何确保当 URL 不变时(使用 react-router 提取的 dataType 和 search 值)接收派生数据的子组件也不会不必要地重新呈现?
【问题讨论】:
标签: javascript reactjs react-router react-hooks