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
    }
})