【发布时间】:2020-06-24 15:13:24
【问题描述】:
我在我的 react 项目中使用了钩子。
我编写了一个函数来管理钩子中的状态。
但我不知道它是否是最优的。
这是我的功能:
mapStateToDOM.js
import {useState} from 'react';
const mspStateToDOM = (initialState, state) => {
Object.keys(initialState).map(item => {
let [current, setCurrent] = useState(initialState[item]);
state[item] = {get: () => current, set: setCurrent};
});
};
export default mspStateToDOM;
有了它,我可以使用state.varName.get()从状态中获取一个变量
我可以使用 state.varName.set(SOME_VALUE)
这是我的代码:
import React from 'react';
import mspStateToDOM from '../config/mapStateToDOM/mapStateToDOM';
const Counter = () => {
const state = {};
const initialState = {
count: 5,
count2: 6
};
mspStateToDOM(initialState, state);
return (
<div>
<p>You clicked {state.count.get()} times</p>
<button
onClick={() => {
state.count.set(state.count.get() + 1);
}}>
Click Me!
</button>
</div>
)
};
export default Counter;
这使代码更加简洁、易读且更易于使用。而且我不必为每个变量定义一个 setter 并在我的代码中多次使用“useState”。
但我不知道它是否是最优的。是吗?
【问题讨论】:
标签: javascript reactjs react-hooks