拼接和 setState() 后的函数渲染

Function render after splice and setState()

我希望我的 React 函数在拼接数组后重新渲染。

这是(部分)函数(使用 Hooks):

function showProblem() {
  const [andArray, setAndArray] = useState([]);

const deleteTag = (i, arr) => {
    let and = andArray;
    switch (arr) {
      case "and":
        and.splice(i, 1);
        setAndArray(and);
        break;
      default:
        return null;
    }
  };


return(
<div>
    {andArray.map((and, i) => {
            return (
              <span
                onClick={() => deleteTag(i, "and")}
                key={i}
              >
                {and}
              </span>
            );
     })}
</div>
)
}

当我单击 SPAN 元素时,我希望 "andArray.map" 再次呈现。

拼接工作正常,我的数组没问题...但是函数没有重新渲染。

非常感谢。

.splice 改变数组。 React 状态必须是不可变的。不变的方式是:

  setAndState(and.filter((_, i2) => i2 !== i));