【问题标题】:Remove a child component from parent dom node in react在反应中从父dom节点中删除子组件
【发布时间】:2016-03-31 13:43:58
【问题描述】:

从装载组件的同一个 DOM 元素中卸载组件。

ReactDOM.render(<SampleComponent />, document.getElementById('container'));

然后我们将卸载它:

React.unmountComponentAtNode(document.getElementById('container'));

如果容器上附加了两个或两个以上的组件,如何将组件卸载并重新附加到父容器,例如

<div id="container">
   <SampleComponent1/>
   <SampleComponent2/>
</div>

我想根据来自SampleComponent2 的某些事件删除并重新附加SampleComponent2

【问题讨论】:

  • React.renderComponent 已被弃用,他们现在正在使用React.render。您也不能在同一个容器上安装两个不同的组件。它只会替换之前渲染的组件。
  • @Road 在新版本中0.14.* 需要使用ReactDOM.render 而不是React.render
  • 你需要存储状态并监听事件。使用 Flux 或 Redux 库。但是通量有一些问题。

标签: javascript html dom reactjs


【解决方案1】:

你应该让 React 根据你给它的 props 来处理组件 1 和 2。

例如,使用 ES6 和 React 0.14 纯组件:

const App = ({has2}) => 
  <div>
     <Component1 />
     {has2 && <Component2 />}
  </div>

如果has2 是真的,它将显示Component2。只需在 has2 更改时再次调用 render ,其余的由 React 完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 2019-05-09
    • 1970-01-01
    • 2015-03-26
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多