- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用react hook api的问题
const Example: FC = (props) => {
const [str, setStr] = useState('example');
const onClickCb = useCallback(() => {
setStr(str + '_');
}, [str, setStr]); // should I need watch setStr?
return <button onClick={onClickCb}>{str}</button>;
};
最佳答案
不,您不需要添加setStr
,因为它在组件的生命周期内不会改变。但添加它也没有太大坏处,因为它不会改变。
Note
React guarantees that
setState
function identity is stable and won’t change on re-renders. This is why it’s safe to omit from theuseEffect
oruseCallback
dependency list.
但是你绝对应该删除str
。不应根据当前状态将状态更新为 react may batch multiple calls to setState
。这可能会导致短时间内发生的更新丢失。而是使用 setState
的回调版本:
const Example: FC = (props) => {
const [str, setStr] = useState('example');
const onClickCb = useCallback(() => setStr(current => `${current}_`)), []);
return <button onClick={onClickCb}>{str}</button>;
};
关于javascript - React Hook API,我是否需要为 SetStateAction 设置依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55825495/
我有一个使用react hook api的问题 const Example: FC = (props) => { const [str, setStr] = useState('example
我有一个 SelectInput 可以让我选择 1、2 或 3,在它下面,我有一个 MultiSelect(带有 Mantine 库)。 我想选择副驾驶的数量(在 SelectInput 上),并允许
我正在使用 React 和 typescript 构建一个应用程序,如果我在 handleImageUpload 函数上初始化为任何我的“evt”,我有一个多部分的帖子。但是,如果我尝试将其初始化为
我正在关注 Ionic tutorial for react . 我创建了教程页面,我正在尝试向其中添加一个日期选择器元素。这是我现在的页面: import { IonContent, IonHead
这是代码 尝试编译它时说“‘toDo’类型的参数不可分配给‘SetStateAction’类型的参数” 我不知道它为什么不工作,因为类型似乎是正确的。 如何避免该错误 const [todoLis
我对 typecipt 很陌生,正在尝试制作一个基本的 pin 输入页面。 Sandbox link for my code .虽然它正在工作,但我在第 10 行收到了 onChange 函数的这个错
我有一个带有输入元素的 React DatePicker 组件。为了处理 onChange 事件,我定义了 onChangeHandler 函数。但是,当我想在 onChangeHandler 中定义
我使用 react Hook 进行更新,但在 setState 时会注意到错误。 Argument of type '{ alertRules: any; }' is not assignable t
我是一名优秀的程序员,十分优秀!