【问题标题】:ReactJS Hooks: Form submitting blank valuesReactJS Hooks:表单提交空白值
【发布时间】:2021-12-03 06:21:54
【问题描述】:

我有一个带有hidden input 的表单,名为campaingid,它通过外部脚本从 URL 参数接收数据。

查看输入代码:

<Input name="campaignid" type="hidden" onChange={e => setCampaignid(e.target.value)} />
                

一切正常...value 字段正在正确填写 URL 参数。

我的问题在以下步骤激增...当我提交表单时,campaingid 值消失了。

查看我的变量状态:

const [campaignid, setCampaignid] = useState('')

当我提交表单时,它会在campaigning 检索空白数据

我认为onChange事件的使用有误。想...

有人可以帮助我吗?

完整代码:https://github.com/stridesdigital/ac-chakraUI-angelina-cortinas/blob/main/src/components/Forms/heroform.tsx

【问题讨论】:

  • 我没有看到关于 URL 参数(在 URL 中)的值的任何信息?
  • 能否提供完整代码+提交?
  • 你能分享更多代码吗?输入的值是如何设置的?提交是如何发生的?如果可能,请尝试生成 minimal, reproducible example
  • 请在问题中包含所有相关代码。添加外部 repo 很好,但问题应该是自包含的,不依赖于外部资源。

标签: reactjs react-hooks next.js chakra-ui


【解决方案1】:

将您的submit 函数移到useState 的下方

钩子的第一条规则:

仅在顶层调用 Hooks https://reactjs.org/docs/hooks-rules.html#only-call-hooks-at-the-top-level

如果它不起作用,则将submit 包装在useCallback 中 参考:https://reactjs.org/docs/hooks-reference.html#usecallback

【讨论】: