如何避免未使用的 setState 函数?可以在没有 setter 的情况下创建 React useState 吗?

Posted

技术标签:

【中文标题】如何避免未使用的 setState 函数?可以在没有 setter 的情况下创建 React useState 吗?【英文标题】:How do I avoid unused setState functions? Can React useState be created without a setter? 【发布时间】:2021-04-19 16:30:46 【问题描述】:

我目前正在减少/删除 React 站点上的 npm 警告。

大量此类警告是由如下所示的 setState 函数引起的,即“未使用”。

const [state, setState] = useState('some state');

以下哪项是消除这些警告的更好方法?还是有更好的方法来解决这个问题?

1.

const[state] = useState('some state');
const state = 'some state';

【问题讨论】:

reactjs.org/docs/hooks-reference.html#usereducer 【参考方案1】:

如果状态设置器未使用,您可以避免使用useState。您可以将值保留在 const 中(在组件的主体中),或移出组件。

setState 在需要了解状态中存储的值的变化时使用。这样组件就知道何时重新渲染。

【讨论】:

谢谢,将 const 值移到组件之外有什么好处(如果有的话)? 当组件重新渲染时,它不必再次初始化变量,而在组件外部,它需要初始化一次,当组件重新渲染时,它只是检索值。跨度> @ljbc1994 实际差异无关紧要。 @ThomasFox 我认为这只是组织性的。【参考方案2】:

如果setState 根本没有被使用,那么它是一个永远不会改变的值,因此可以是一个常数 (2.)。您也可以将其移出组件。

【讨论】:

以上是关于如何避免未使用的 setState 函数?可以在没有 setter 的情况下创建 React useState 吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何避免在渲染方法中使用 setState?

可以打印出值,但在 setState 中它的“未定义”[重复]

Flutter - 从 websocket 消息动态创建小部件 - 未处理的异常:在构造函数中调用 setState()

状态未使用setState进行更新反应

反应:在构造函数上绑定方法时,在 setState 内实现计时器,状态属性未定义

调用 setState 后 ReactJS 元素未更新