拼接和 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));
我希望我的 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));