即使组件树没有更改,我如何确保React创建组件的新实例?

时间:2018-10-11 16:44:49

标签: javascript reactjs

React根据该树中的元素名称来更新其组件树。

例如:

<div>
  <MyComponent/>
</div>

并且:

<div>
  <MyComponent enabled/>
</div>

...使用相同的<MyComponent>实例在React中产生结果(因为组件 name 不变)。这非常有用,因为它可以确保组件实例内的内部状态持续存在。

有关更多详细信息,请参见the documentation

我的问题:“在某些情况下是否有办法强制创建新实例?”

因此,我不想使用相同的MyComponent实例,而是希望在prop 'x'已更改的情况下实例化一个新实例。

1 个答案:

答案 0 :(得分:1)

未经测试,但我认为您可以欺骗React并将prop作为key添加到组件上。

<div>
  <MyComponent enabled key={enabled.toString()} />
</div>

由于您熟悉对帐单据,因此我想您已经知道哪些键已经执行了;)