是否可以在 React 中使用 React.useState(() => {}) ? [英] is it possible to React.useState(() => {}) in React?
问题描述
是否可以使用 function
作为我的 React 组件的状态?
此处的示例代码:
//打字稿类型 OoopsFunction = () =>空白;导出函数 App() {const [ooops, setOoops] = React.useState(() =>console.log('默认 ooops'));返回 (<div><div onClick={ 哎呀 }>显示哎呀
<div onClick={() =>{setOoops(() => console.log('other ooops'))}}>更改哎呀
)}
但它不起作用...... defaultOoops
将在最开始被调用,当点击 change oops
时,other ooops
> 再次点击 Show Ooops
后,将立即登录到控制台而不记录.
为什么?
我可以使用函数作为组件的状态吗?
或者 React 有它特殊的方式来处理这样的 函数状态
?
可以使用钩子将函数设置为状态,但是因为可以使用返回初始状态或更新状态的函数来初始化和更新状态,您需要提供一个函数,该函数又返回您要置于状态的函数.
const { useState } = React;功能应用(){const [ooops, setOoops] = useState(() => () => console.log("default ooops"));返回 (<div><button onClick={ooops}>显示 Ooops</button><按钮onClick={() =>{setOoops(() => () => console.log("other ooops"));}}>更改哎呀按钮>
);}ReactDOM.render(
<script src="https://unpkg.com/react@16/umd/react.development.js"><;/脚本><script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script><div id="root"></div>