React 和 Apollo useMutation --- 无法读取未定义的 属性 '0'
React and Apollo useMutation --- Cannot read property '0' of undefined
似乎无法在页面加载时解决这个问题。加载组件时,我不断收到错误“TypeError: Cannot read 属性 '0' of undefined”。 useMutation 使用的是 react-apollo 库,但出于某种原因,它会在我们 运行 突变之前检查 causes[0].name 是否存在。 cause_name 在页面加载时最初是空的,但当我们第一次与 DonateBox 交互时首先变为未定义。但是,当我们设置原因值时,它会正确发送数组。所以我不确定为什么这个错误继续存在?即使它是未定义的,也不应该抱怨,对吗?任何帮助都会很棒,这让我发疯。
const DonatePage = () => {
const [causes, setCauses] = useState('')
const [category, setCategory] = useState('cause')
const [amount, setAmount] = useState('25')
const [frequency, setFrequency] = useState('once')
const [saveDonation] = useMutation(CREATE_DONATION, {
variables: {
date: moment().toDate(),
type: 'cause',
recurring: 'false',
amount: Number(amount),
cause_name: undefined || null ? undefined : causes[0]?.name
},
onCompleted() {
}
})
return (
<DonateBox
goToPayment={setCurrentPage}
setCauseProps={setCauses}
setAmount={setAmount}
setCategory={setCategory}
/>
)
}
调用变异函数时将变量传递给变异。并从 useMutation()
选项中删除变量。
const [saveDonation] = useMutation(CREATE_DONATION, {
onCompleted() {
}
});
...
...
...
saveDonation({
variables: {
date: moment().toDate(),
type: 'cause',
recurring: 'false',
amount: Number(amount),
cause_name: undefined || null ? undefined : causes[0].name
}
})
似乎无法在页面加载时解决这个问题。加载组件时,我不断收到错误“TypeError: Cannot read 属性 '0' of undefined”。 useMutation 使用的是 react-apollo 库,但出于某种原因,它会在我们 运行 突变之前检查 causes[0].name 是否存在。 cause_name 在页面加载时最初是空的,但当我们第一次与 DonateBox 交互时首先变为未定义。但是,当我们设置原因值时,它会正确发送数组。所以我不确定为什么这个错误继续存在?即使它是未定义的,也不应该抱怨,对吗?任何帮助都会很棒,这让我发疯。
const DonatePage = () => {
const [causes, setCauses] = useState('')
const [category, setCategory] = useState('cause')
const [amount, setAmount] = useState('25')
const [frequency, setFrequency] = useState('once')
const [saveDonation] = useMutation(CREATE_DONATION, {
variables: {
date: moment().toDate(),
type: 'cause',
recurring: 'false',
amount: Number(amount),
cause_name: undefined || null ? undefined : causes[0]?.name
},
onCompleted() {
}
})
return (
<DonateBox
goToPayment={setCurrentPage}
setCauseProps={setCauses}
setAmount={setAmount}
setCategory={setCategory}
/>
)
}
调用变异函数时将变量传递给变异。并从 useMutation()
选项中删除变量。
const [saveDonation] = useMutation(CREATE_DONATION, {
onCompleted() {
}
});
...
...
...
saveDonation({
variables: {
date: moment().toDate(),
type: 'cause',
recurring: 'false',
amount: Number(amount),
cause_name: undefined || null ? undefined : causes[0].name
}
})