我在屏幕上有一个列表视图(在我的情况下是一个选项卡),如果我再次选择该选项卡(已被选中),则会实例化一个新组件。
例如,如果我滚动列表然后点击选项卡按钮,滚动将转到顶部。 它只发生在第一次,所以如果你再次点击选项卡按钮,什么都不会发生(我猜这是预期的行为)。
在场景中移动时,“有时”(不知道确切时间)也会发生同样的情况,我认为这不应该发生,因为您将丢失以前的组件状态。
我正在使用的版本:
使用 react-native-router-flux v3.37.0 按预期工作(不重新渲染屏幕),因此 v3.38.0 或其依赖项似乎是一个错误。
是的,面临同样的问题,回滚到 3.37.0
即使在 3.37 我也面临同样的问题
我可以确认该问题在 3.37.0 中消失,但在 3.38.0 中确实存在。
@sk15973
确保在安装新软件包后重新启动 react-native 打包程序。
并且还要确保相应地使用 componentDidMount/componentWillMount/componentWillReceiveProps,并且不要对状态进行许多不必要的更改。
同样的问题在这里。
@sk15973在您的package.json
文件中,请确保您的react-native-router-flux
依赖项不包含脱字符 (^) 符号:
"dependencies": {
"react-native-router-flux": "3.37.0", // Good
"react-native-router-flux": "^3.37.0", // Bad
}
使用插入符号,当您执行新的npm install
时,您实际上将使用 v3.38.0。 这是因为react-native-router-flux
似乎通过在次要版本中引入行为变化来破坏 semver。
请原谅我@aksonov标记你,但我认为这有点严重,因为在使用npm install react-nativer-router-flux --save
时默认插入插入符号 ^ 。 随着时间的推移,这个库的用户可能会在使用新的npm install
后发现自己陷入了神秘的麻烦。 但我完全理解如果你没有时间:)
我在 3.38 遇到同样的问题
@jonrh谢谢,我没有注意到,现在工作正常
@EmiPC @jonrh这个错误在 3.39.1 中解决了吗???
@iiitmahesh不幸的是我不知道。 版本 3.37.0 是我将使用这个库的最后一个版本,迁移到 React Navigation。
最有用的评论
使用 react-native-router-flux v3.37.0 按预期工作(不重新渲染屏幕),因此 v3.38.0 或其依赖项似乎是一个错误。