首页 > 解决方案 > 为什么我只能调用这个函数一次?

问题描述

我正在尝试构建创建数组的开关,并且到目前为止:

const [playgroundFilters, setPlaygroundFilters] = useState([initialF]);

  const updateItem = (whichvalue, newvalue) => {
    let g = playgroundFilters[0];
    g[whichvalue] = newvalue;
    setPlaygroundFilters(g, ...playgroundFilters.slice());
    console.log(playgroundFilters);
  };

当我调用updateItemonPress 时,它会工作一次,并且以后每次都会收到错误“未定义不是评估 g 的对象”

有没有简单的方法来解决这个问题?

标签: javascriptreact-native

解决方案


  1. setPlaygroundFilters 需要一个数组,所以你需要这样调用它
setPlaygroundFilters([g, ...playgroundFilters.slice()]);

代替

setPlaygroundFilters(g, ...playgroundFilters.slice());
  1. 我不确定您是否真的想在.slice()这里这样使用,因为它只返回相同的(克隆的)数组。

推荐阅读