В моем проекте React с использованием React Query у меня есть функциональный компонент MoveKeywordModal
, такой что:
при первой загрузке он выбирает из конечной точки API
api/keyword_lists
, чтобы получить кучуkeywordLists
данных. Для каждого из этихkeywordLists
, назовите егоlist
, я создаю интерактивный элемент.Когда щелкают по интерактивному элементу (заключенному в
HoverWrapper
), я хочу отправить запрос POST API наapi/keyword_lists/:list_id/keyword_list_items/import
с некоторыми данными. где:list_id
- это идентификатор списка, по которому только что щелкнули.
export const MoveKeywordModal = ({
setShowMoveKeywordModal,
keywordsToMove
}) => {
const { data: keywordLists } = useQuery('api/keyword_lists', {})
const [newKeywordList, setNewKeywordList] = useState({})
const { mutate: moveKeywordsToList } = useMutation(
`api/keyword_lists/${newKeywordList.id}/keyword_list_items/import`,
{
onSuccess: data => {
console.log(data)
},
onError: error => {
console.log(error)
}
}
)
const availableKeywordLists = keywordLists
.filter(l => l.id !== activeKeywordList.id)
.map(list => (
<HoverWrapper
id={list.id}
onClick={() => {
setNewKeywordList(list)
moveKeywordsToList({
variables: { newKeywordList, data: keywordsToMove }
})
}}>
<p>{list.name}</p>
</HoverWrapper>
))
return (
<>
<StyledModal
isVisible
handleBackdropClick={() => setShowMoveKeywordModal(false)}>
<div>{availableKeywordLists}</div>
</StyledModal>
</>
)
}
Несмотря на вызов setNewKeywordList(list)
в onClick
HoverWrapper
, кажется, что newKeywordList.id
все еще не определен, даже newKeywordList
не определен.
Что мне делать, чтобы это исправить?
Спасибо!