我想要一个全局变量,我可以使用钩子在任何地方进行编辑。
在示例中,我有 2 个组件都使用相同的钩子。在我看来,它External toggle
正在编辑自己的范围count
,并且Internal Toggle
也在改变自己的范围。
两个切换是否可以编辑相同的数据?
代码示例: https ://codesandbox.io/s/520zvyjwlp
index.js
function ChangeCount() {
const { count, increment } = useCounter();
return <button onClick={() => increment(!count)}>External Toggle</button>;
}
function App() {
const { count, increment } = useCounter();
return (
<div>
{`${count}`}
<br />
<ChangeCount />
<br />
<button onClick={() => increment(!count)}>Internal Toggle</button>
</div>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
useCount.js
import { useState } from "react";
export default function useCounter() {
const [count, setCount] = useState(false);
const increment = (changeCount) => setCount(changeCount);
return { count, increment };
}