所以我现在开始使用 React hooks。我已经用 API 试验了一段时间了。我真的很喜欢将状态带入功能组件的想法。但是有一件事一直困扰着我,当我尝试使用它时,它感觉不对劲。我试着发帖,RFCs
但现在那里太拥挤了。那里的一切似乎都消失了。
这是我的示例中的一段代码。
import React, { useState } from "react";
function Counter() {
const [counterState,incrementCounterState] = useCommontState(0);
function doSomething (){
// does something and then calls incrementCounterState
// with the updated state.
}
return (
<div>
<p>{counterState}</p>
<button onClick={incrementCounterState}>increase</button>
....
.... // some jsx calling local scoped functions.
....
</div>
);
}
function useCommontState(defaultValue){
var [state, setState] = useState(0);
function increment(){
setState(defaultValue+=1);
}
return [state, increment]
}
export default Counter;
我可以轻松取出方法state
并setState
创建自定义hook
,但我的问题在于组件使用的本地函数。由于状态现在是组件的一部分,因此在某些情况下,某些逻辑将决定下一步如何处理该状态。
此外,当组件在状态更改时重新渲染时,一切都会重新初始化。这是我的问题。我知道它useState
有自己的处理问题的方法。但我的问题在于我自己的功能。点击处理程序。在更改事件、子组件的回调等上,所有这些都将在每次组件呈现时重新初始化。我觉得这不对。
有什么方法可以解决它。这是一个新的 API。我们甚至不确定它是否会变成react 17
. 但是有没有人遇到过更好的方法呢?