次のコードがありAsyncStorage.setItemます。最初のレンダリングで 2 回呼び出されないようにするにはどうすればよいですか? 更新されたため、[]ロードされたものは何でも呼び出されます。は から取得されたばかりなので、完全な解決策はまったく呼び出すべきではありません。AsyncStoragelogssetItemlogsAsyncStorage
const AsyncStorage = require("@react-native-community/async-storage")
const useStore = () => {
const [logs, setLogs] = useState([])
useEffect(() => {
AsyncStorage.getItem("logs").then((newLogs) => setLogs(newLogs));
}, [])
useEffect(() => {
//Don't want to setItem on initial load or when `logs` was just loaded.
AsyncStorage.setItem("logs", JSON.stringify(logs));
}, [logs])
const addLog = (newText) => {
setLogs(logs => [
{text: newText, createdAt: new Date().getTime()},
...logs,
]);
}
return {
logs,
addLog,
//...many other functions that update logs
}
}