如何解决Proxy和useState结合
它在处理状态和视图时提供数据响应性,在这种情况下,useState
对于状态定义来说是不必要的。修改属性将自动导致视图重新呈现。
import { useState,useEffect,useMemo } from 'react';
import useCreation from '../useCreation';
function observer(initialVal,cb) {
return new Proxy(initialVal,{
get(target,key,receiver) {
const res = Reflect.get(target,receiver);
return typeof res === 'object' ? observer(res,cb) : res;
},set(target,val) {
cb();
return Reflect.set(target,val);
},});
}
function useReactive<S extends object>(initialState: S): S {
const [observerState,setObserverState] = useState<S>(initialState);
let state = useMemo(() => {
return observer(observerState,() => {
setObserverState({...observerState});
});
},[]);
return state;
}
export default useReactive;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。