Javascript 函数在拼接和设置状态后渲染()

Javascript 函数在拼接和设置状态后渲染(),javascript,reactjs,render,splice,Javascript,Reactjs,Render,Splice,我希望我的React函数在拼接阵列后重新渲染 以下是函数(使用挂钩)的一部分: 函数showProblem(){ 常量[andArray,setAndArray]=useState([]); 常量deleteTag=(i,arr)=>{ 让和=排列; 交换机(arr){ 案例“和”: 和.拼接(i,1); setAndArray(和); 打破 违约: 返回null; } }; 返回( {andArray.map((和,i)=>{ 返回( deleteTag(i,“and”)} key={i} >

我希望我的React函数在拼接阵列后重新渲染

以下是函数(使用挂钩)的一部分:

函数showProblem(){
常量[andArray,setAndArray]=useState([]);
常量deleteTag=(i,arr)=>{
让和=排列;
交换机(arr){
案例“和”:
和.拼接(i,1);
setAndArray(和);
打破
违约:
返回null;
}
};
返回(
{andArray.map((和,i)=>{
返回(
deleteTag(i,“and”)}
key={i}
>
{和}
);
})}
)
}
当我单击SPAN元素时,我希望我的“andArray.map”再次渲染

接头工作正常,我的阵列正常。。。但函数不会重新渲染


非常感谢。

.splice
使阵列发生变异。反应状态必须是不变的。不可改变的方式是:

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

它是有效的。。。你能给我解释一下你在比较“i2”吗?无论如何,非常感谢!。。。明白了,这只是你给索引变量起的名字。谢谢:)他需要排除特定索引
i
处的数组项,因此当
i2==i
时,应该排除元素,这就是他使用条件
i2!==我
  setAndState(and.filter((_, i2) => i2 !== i));