Rax
跨端框架:官网
写法跟react没差
常见错误
这是由于存在异步更新组件而导致的问题,由于上个页面销毁了,setState并没有停止
解决方案
自己写了一个自定义hooks,用来替换useState;直接上代码:
import { useState } from 'rax';
import useMountedState from 'rax-use-mounted-state';
function useSafeState(initialState) {
const isMounted = useMountedState();
const [state, setState] = useState(initialState);
const setCurrentState = (currentState) => {
/** 如果组件已经卸载则不再更新 state */
isMounted() && setState(currentState);
};
return [state, setCurrentState] as const;
}
export default useSafeState;
//像useState一样使用即可