为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Cats萌萌 2021-12-02 16:41:57
我目前正在学习 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();}
查看完整描述

2 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

那不是函数式组件,因为函数式组件必须返回一个 React 元素。


如果它是一个功能组件,并且您在返回 Element 之前同步更改变量,那很好:


const Func = () => {

  let fruit = "banana";


  const changeFruit = () => {

    fruit = "apple"

  };


  changeFruit();


  return <>{fruit}</>; // displays "apple"

};

如果您异步更改它,例如


  setTimeout(changeFruit, 1000);

那么在变量更改后组件将不会重新渲染。这不是你通常想要的。如果您useState调用该setFruit函数,则组件会重新渲染。


查看完整回答
反对 回复 2021-12-02
?
暮色呼如

TA贡献1853条经验 获得超9个赞

我可以在函数组件中使用“let”而不是“useState”吗?

答案是否定的,你不能用 let 代替 state。你的组件不会重新渲染,这就是状态的全部

请考虑React文档以帮助您理解 React 中的状态概念

希望能帮助到你


查看完整回答
反对 回复 2021-12-02
  • 2 回答
  • 0 关注
  • 140 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信