javascript - react : Switch Case/Same Component doesn't Unmount

标签 javascript reactjs react-native

我正在 React-native 中实现一个多步骤过程(类似于 React)。

我有一个函数可以确定显示哪一步:

renderStep = step => {

  switch (processStep[step]) {
    case 0:
      return (
        <Product />
      );
      break;
    case 1:
      return (
        <Select data={size} />
      );
      break;
    case 2:
      return (
        <Select data={adresses} />
      );
      break;
    case 3:
      return (
        <RecapOrder />
      );
      break;
    default:
      return null;
  }
};

我的第二步和第三步使用相同的 _stepSelect 组件。它使用相同的逻辑,所以我使用相同的组件。

我的问题是:即使 Prop 发生变化,Select 组件也不会在步骤 12 之间卸载。

因此,当从第 1 步更改为第 2 步时,我的本地状态不会重置。

如何强制卸载组件。

最佳答案

我建议首先尝试向在此函数中呈现的每个元素添加键。我已经看到 React 无法分辨正在渲染的组件之间的区别的问题,因此它会跳过一些生命周期事件并直接跳到渲染。

<Product key="process-step-product"/>

关于javascript - react : Switch Case/Same Component doesn't Unmount,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49176890/

相关文章:

javascript - Webpack 未解析 jsx 文件

reactjs - React-Native 样式未得到应用

javascript - 切换按钮处于关闭状态,但其值为 true

android - React Native Expo Location 权限抛出 Location Provider 警告

javascript - 有没有办法发现 javascript 6 类是否定义了自己的构造函数?

javascript - 获取 HTML5 范围 slider 句柄的偏移位置

javascript - 如何在 getInitialProps 中隐藏 api key

javascript - React Native 未定义不是一个函数

android - React Native 0.57.1​​ Android 重复资源

javascript - 从 moment.js 获取时区列表