React state更新的问题
页面中有一组Switch组件,默认全部开启,通过改变switchValue控制开关
开关数据从一个常量文件中导入的
export const stationStatusSwitch = [
{
switchValue: true,
id: 1
},
{
switchValue: true,
id: 2
},
{
switchValue: true,
id: 3
},
{
switchValue: true,
id: 4
},
{
switchValue: true,
id: 5
},
{
switchValue: true,
id: 6
},
{
switchValue: true,
id: 7
}
]
import { stationStatusSwitch } from "./constants";`
constructor(props) {
this.state = {
stationStatusSwitch,
}
}
现在有个问题就是:如果把开关关闭也就是switchValue设为false然后再回到上个页面再重新进入这个页面,这个时候开关还是关闭的,switchValue的值还是false,在class外边打印stationStatusSwitch发现switchValue也是false。
这个就不明白了,回到上个页面再进入这个页面,state不应该被重置吗,我改变的是state为什么还是影响到导入的数组。如果我把stationStatusSwitch放到当前页面的state中就不会有这个问题,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
按照题主描述,应该是navigation 切换screen 时 navigation使用的前面已经创建的路由栈中的页面,stack 中保留了上次页面的状态。
因题主描述信息不足,可以尝试下一下方法:
原则上 使用navigation.push 应该能解决你的问题了,但是注意下返回不能再使用 goBack()
如果不能解决你的问题,请再提供以下信息:
另外 一楼在胡扯
应该是浏览器缓存了
HTML
的状态。回到这个页面之后刷新一下,如果状态被重置了的话,就说明确实是被缓存了。