


了解 React 中的无效器
Invalidator 是一个 JavaScript 对象,允许您使 React 组件的状态无效(或重置)。当组件的状态失效时,React 会使用更新后的状态重新渲染组件。
换句话说,失效器是一种告诉 React 组件的状态已更改并需要重新渲染的方式。
这里有一些失效器的常见用例:
1。当数据更改时:如果组件正在渲染的数据发生更改,您可以使用无效器告诉React使用更新的数据重新渲染组件。
2。当 prop 更改时:如果组件的 props 更改,您可以使用无效器告诉 React 使用新的 props.
3 重新渲染组件。当状态更改不是由 prop 更改触发时:有时,即使组件的 props 没有更改,您也可能希望重新渲染组件。例如,如果您使用状态变量来跟踪列表中的项目数,并且用户添加或删除项目,则可以使用无效器告诉 React 使用更新后的状态重新渲染组件。
4。当组件被卸载时:如果组件被卸载(即从 DOM 中删除),您可以使用失效器告诉 React 清理该组件正在使用的任何资源。失效器通常实现为返回布尔值的函数指示组件的状态是否已更改。下面是如何在 React 组件中使用失效器的示例:
```
class Counter extends React.Component {
state = { count: 0 };
invalidator = () => {
return this.state. count !== this.lastCount;
};
handleAdd = () => {
this.lastCount = this.state.count;
this.setState({ count: this.state.count + 1 });
} ;
render() {
return (
Count: {this.state.count}
);
}
}
````
在这个示例中,如果组件的状态已更改,则“invalidator”函数返回“true”,否则返回“false”。 “handleAdd”函数通过将“lastCount”设置为当前计数来更新组件的状态,然后使用新值更新“count”状态。当组件重新渲染时,React 将调用“invalidator”函数来检查状态是否发生变化,如果发生变化,它将使用更新后的状态重新渲染组件。



