我目前正在学习React。
我可以在功能组件中使用“ let”代替“ useState”吗?
const Func = () => {
let fruit = "banana";
const changeFruit = () => {
fruit = "apple"
};
changeFruit();
}
const Func = () => {
const [fruit, setFruit] = useState("banana");
const changeFruit = () => {
setFruit("apple");
};
changeFruit();
}
答案 0 :(得分:1)
这不是功能组件,因为功能组件必须返回React元素。
如果它将是一个功能组件,并且您在返回Element之前同步更改了变量 ,那就很好了:
const Func = () => {
let fruit = "banana";
const changeFruit = () => {
fruit = "apple"
};
changeFruit();
return <>{fruit}</>; // displays "apple"
};
如果您异步进行更改,例如
setTimeout(changeFruit, 1000);
然后在变量更改后组件将不会重新显示。那通常不是你想要的。如果您useState
并调用setFruit
函数,则该组件将重新呈现。
答案 1 :(得分:1)
我可以在函数组件中使用“ let”代替“ useState”吗?
答案是否定的,您不能使用let代替state。您的组件不会重新渲染,这就是状态的全部
请考虑使用React文档,以帮助您了解React中状态的概念
希望有帮助