【问题标题】:How can a child component find if the Parent Component is finished modifying the dom, from it's recieved props子组件如何从收到的道具中找到父组件是否完成了对 dom 的修改
【发布时间】:2020-02-06 02:16:20
【问题描述】:

我正在做一个图书馆项目。 我的根组件正在监听 redux 存储。在我最初的页面访问中,商店没有加载。所以一开始它没有显示任何书籍。大约 1 秒后(图书 API 调用完成后),它会将图书加载到 redux 存储区,该存储区会使用获取的图书更新根容器的 Dom。

我有一个 menuBar 组件,它作为根组件的子组件工作。正在获取由根对象创建的 dom 节点 [我使用 document.getElementByID('ID') ]。我在我的子组件 componentDidMount() 函数中执行此操作。问题是子组件在根组件重新渲染后不会重新渲染。

所以菜单栏保持空白。

我使用 redux-persist。 如果我刷新页面,菜单栏会出现,因为 redux-persist 从初始 API 获取中为 redux 存储提供了值。

有没有办法检测根组件是否正在做 dom 修改,如果是,有没有办法从根组件强制更新子组件。

如果您需要更多信息,请发表评论。

【问题讨论】:

    标签: reactjs react-redux


    【解决方案1】:

    您需要将数据传递给子组件,而不是使用 ID 查找。

    const Parent = (store) => {
        
      const dataFromRedux = store.parentData
      // get your data some how
    
      return (
      <div>
        <Child data={dataFromRedux} />
      <div>
      )
    }
    
    const Child = ({ data }) => {
      // child will now re-render when the data is updated
      return <div>{data}</div>
    }

    【讨论】:

      猜你喜欢
      • 2019-12-01
      • 2020-07-30
      • 2020-10-24
      • 1970-01-01
      • 2021-07-22
      • 1970-01-01
      • 2020-10-02
      • 2015-08-29
      • 1970-01-01
      相关资源
      最近更新 更多