避免函数在ReactJs中反复运行

避免函数在ReactJs中反复运行,reactjs,Reactjs,我创建了使用道具的组件,这个组件过滤器道具,但是只要状态发生变化,它就会重新分配变量 示例: const Foo = (props) => { const [state, setState] = useState(); const schema = array_filter(props.data, "schema"); // other Code } 每次更改状态时,都会调用array\u filter方法array\u filter函数是过滤数组的自定义函数

我创建了使用
道具的
组件
,这个
组件
过滤器
道具,但是只要
状态
发生变化,它就会重新分配变量

示例:

const Foo = (props) => {
 const [state, setState] = useState();
 const schema = array_filter(props.data, "schema");

 // other Code
}
每次更改
状态
时,都会调用
array\u filter
方法
array\u filter
函数是过滤数组的自定义函数。我想避免额外运行
array\u filter
函数。我该怎么做你能告诉我吗


我尝试了
useRef
,但不起作用。

只需缓存您的结果,它只会在您的输入更改时重新计算,这对您来说是最好的:

const schema=React.usemo(()=>array_filter(props.data,“schema”),[props.data]);