javascript - 为什么我只能调用这个函数一次?
问题描述
我正在尝试构建创建数组的开关,并且到目前为止:
const [playgroundFilters, setPlaygroundFilters] = useState([initialF]);
const updateItem = (whichvalue, newvalue) => {
let g = playgroundFilters[0];
g[whichvalue] = newvalue;
setPlaygroundFilters(g, ...playgroundFilters.slice());
console.log(playgroundFilters);
};
当我调用updateItem
onPress 时,它会工作一次,并且以后每次都会收到错误“未定义不是评估 g 的对象”
有没有简单的方法来解决这个问题?
解决方案
- setPlaygroundFilters 需要一个数组,所以你需要这样调用它
setPlaygroundFilters([g, ...playgroundFilters.slice()]);
代替
setPlaygroundFilters(g, ...playgroundFilters.slice());
- 我不确定您是否真的想在
.slice()
这里这样使用,因为它只返回相同的(克隆的)数组。