Я знаю, React Hooks
не поддерживают синхронные методы, такие как async / await.
Я должен обрабатывать следующий процесс, только если setState of the hooks
синхронизирован и значение успешно сохранено.
В случае оригинального this.setState({..})
я использовал обратный вызов, чтобы сделать следующее, но что мне делать hooks setState
?
для примера,
export const FirstComponent = () => {
const [peopleList, setPeopleList] = useState(null)
const [myList, setMyList] = useState(null)
const { data, loading, error } = useQuery(gql(GQL_GET_PEOPLE_LIST)
useEffect(() => {
const onCompleted = data => {
setPeopleList(data.list)
}
if (!loading) {
onCompleted(data)
}
}, [data, loading, error])
...
const onChangeMyList = id => {
setMyList(peopleList.filter(x => x.id === id)
.map(x => x.item.originalList.lists) // <- This must be completed first!!
openModal(true) // <- Then, it has to be executed!
}
...
return (
<div>
<p onClick={() => onChangeMyList(id)}>Click!</p>
<div>
)
}
Как мне это исправить?