我可以在反应功能组件中使用“让”吗?

我目前正在学习 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();

}


Cats萌萌
浏览 154回答 2
2回答

慕容森

那不是函数式组件,因为函数式组件必须返回一个 React 元素。如果它是一个功能组件,并且您在返回 Element 之前同步更改变量,那很好:const Func = () => {&nbsp; let fruit = "banana";&nbsp; const changeFruit = () => {&nbsp; &nbsp; fruit = "apple"&nbsp; };&nbsp; changeFruit();&nbsp; return <>{fruit}</>; // displays "apple"};如果您异步更改它,例如&nbsp; setTimeout(changeFruit, 1000);那么在变量更改后组件将不会重新渲染。这不是你通常想要的。如果您useState调用该setFruit函数,则组件会重新渲染。

暮色呼如

我可以在函数组件中使用“let”而不是“useState”吗?答案是否定的,你不能用 let 代替 state。你的组件不会重新渲染,这就是状态的全部请考虑React文档以帮助您理解 React 中的状态概念希望能帮助到你
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript