道具是异步函数中的未定义/空对象?

时间:2019-10-07 15:29:21

标签: javascript reactjs

我目前有一个无状态功能组件,该组件从redux获取数据,并使用它向graphQL发送变异。我还将lodash的getgetOr用于道具选择。问题是,在下面的submit函数中,我试图使用props将表单数据传递到请求/突变中。不幸的是,当我在console.log函数外部使用async道具时,formData充满了我需要的信息。当我在异步函数中使用props时,什么也找不到。我在这里做错什么了吗?下面的示例:

const BeforeRequestModal = (props) => {
  console.log(props.formData) // formData shows redux data here
  const submit = async () => {
    console.log(props.formData) // formData is an empty object here?
    try {
      console.log(props.formData) // formData is an empty object here as well?
    } catch(err) {
      console.log(err)
    }
  }

  return (
    <Modal size="sm">
      copy copy copy
      <ConsentForm />
      <Button
        text="Request"
        onClick={submit}
      />
    </Modal>
  );
}

const mapStateToProps = (state) => ({
  formData: getOr({}, 'member-consent.data', state.form),
})

export default compose(
  connect(mapStateToProps)
)(BeforeRequestModal)

0 个答案:

没有答案