React Native:基于应用程序刷新时的先前值进行状态更新



我只是在玩一些东西,并观察到了这种行为;我哪儿也找不到原因。我有一个初始数组状态[1,2],在使用中效果我一直在根据以前的值更新状态

const [myArr, setArray] = useState([1, 2])
useEffect(() => {
setArray((prevValues) => [...prevValues, ...newData]);
}, [])

每次我重新加载我的应用程序时,状态都是在prevValues中附加newData,为什么状态没有根据初始数组值更新?为什么即使我刷新了模拟器,state也知道以前的数组?

Instead of this,
newData = [3,4]
myArr = [1, 2, 3, 4]
updating like this,
newData = [3,4]
myArr = [1, 2, 3, 4, 3, 4, 3, 4, 3, 4]

基于useEffect中的prev值更新状态值是错误的吗?想了解这种行为。

每次重新加载时,myArr都会返回到初始值。如果你想保留pervious值,你应该像redux一样将myArr保存在状态管理器中,或者将其保存在本地存储中

最新更新