import { useReducer } from "react";
import Immutable from "seamless-immutable";
const useData = (initValue = {}) => {
const fetchReducer = (state, data) => {
return state.merge(data);
}
return useReducer(fetchReducer, Immutable(initValue));
}
export default useData
const [data2,setData]=useState({a:1,b:2,c:3});
const [data3,setData1]=useData({a:1,b:2,c:3})
setData({a:3});
setData1({a:3})
console.log(data2,data3)
由于useState在改变对象时 如果改变某个特定的值 会导致其他属性值丢失。