从 React Native 0.67 更新到 0.69.5 后,我正在重构代码,从而将 React 18 添加到应用程序中。我有一些类似下面的代码,在内部doSomething()使用userInfo。关键是要确保我仅doSomething()在拥有最新版本的 userInfo 时才调用。
useEffect(() => {
doSomething()
}, [userInfo])
const handleLoginButton = async () => {
const info = await fetchUserInfo();
setUserInfo(info);
}
Run Code Online (Sandbox Code Playgroud)
我承认,从最近的讨论来看,这是对 useEffect 的错误使用。所以我想重构为类似的东西
const handleLoginButton = async () => {
const info = await fetchUserInfo();
flushSync(() => setUserInfo(info));
doSomething();
}
Run Code Online (Sandbox Code Playgroud)
但是flushSync从 进口的react-dom。我确实知道我可以doSomething(info),但这需要在实际代码中进行更多的重构。有什么方法可以使用react-native而不是实现此目的吗react-dom?