Reactjs 反应:如何正确更新状态数组?setState(state.concat(数组))不工作 问题:
我无法通过其值更新useState,React Native中的数组 背景: 我开发了录音应用程序,我想保留最后5秒,每2.5秒更新一次: [旧音频数据](5秒)和[新音频数据](2.5秒) ->(裁剪前2.5秒的旧音频数据) [旧音频数据](最后2.5秒)+[新音频数据](2.5秒)Reactjs 反应:如何正确更新状态数组?setState(state.concat(数组))不工作 问题:,reactjs,react-native,Reactjs,React Native,我无法通过其值更新useState,React Native中的数组 背景: 我开发了录音应用程序,我想保留最后5秒,每2.5秒更新一次: [旧音频数据](5秒)和[新音频数据](2.5秒) ->(裁剪前2.5秒的旧音频数据) [旧音频数据](最后2.5秒)+[新音频数据](2.5秒) 更新时应使用以前的状态 const newSignals = signals.slice(signals.length - data.length, signals.length).concat(data); s
更新时应使用以前的状态
const newSignals = signals.slice(signals.length - data.length, signals.length).concat(data);
setSignals(newSignals);
致:
最好始终将状态视为不可变的。我认为您可以通过这样的方式实现这一点:
setSignals(prev=>[…prev.filter((_e,I)=>I
[0, 0, 0, 0, ..., -42, 64, 78]
[0, 0, 0, 0, ..., 12, 22, 132]
[0, 0, 0, 0, ..., 10, -222, 121]
const newSignals = signals.slice(signals.length - data.length, signals.length).concat(data);
setSignals(newSignals);
setSignals(prev => prev.slice(signals.length - data.length, signals.length).concat(data));