Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用React hook表单进行反应-没有可用数据时渲染输出-错误映射未定义_Javascript_Reactjs_React Hooks_React Hook Form - Fatal编程技术网

Javascript 使用React hook表单进行反应-没有可用数据时渲染输出-错误映射未定义

Javascript 使用React hook表单进行反应-没有可用数据时渲染输出-错误映射未定义,javascript,reactjs,react-hooks,react-hook-form,Javascript,Reactjs,React Hooks,React Hook Form,我正在尝试学习如何在我的应用程序中使用react-hook表单 我有一个有很多输入的表单 我有一个updateData函数,应该用来捕获和存储输入,但它似乎不起作用。每次我想要渲染表单时,如果我返回多步骤表单中的一个步骤,如果我不重新输入表单输入,它似乎会抛出并出错 在“渲染”页面上,我使用: {state.data.title} {state.data.PreregistrationEntities.map(PreregistrationEntities => <Paragraph

我正在尝试学习如何在我的应用程序中使用react-hook表单

我有一个有很多输入的表单

我有一个updateData函数,应该用来捕获和存储输入,但它似乎不起作用。每次我想要渲染表单时,如果我返回多步骤表单中的一个步骤,如果我不重新输入表单输入,它似乎会抛出并出错

在“渲染”页面上,我使用:

{state.data.title}
{state.data.PreregistrationEntities.map(PreregistrationEntities => <Paragraph><Text>This will be registered with {PreregistrationEntities.label}.</Text></Paragraph>)}
{state.data.title}
{state.data.PreregistrationEntities.map(PreregistrationEntities=>这将在{PreregistrationEntities.label}中注册)
TypeError:无法读取未定义的属性“map”

如果每次呈现表单输出页面时不填写预注册表单字段,它会抛出一个错误,表示无法读取未定义的映射

如果只能找到输出,如何渲染输出?在这种情况下,我宁愿有一个空白的未完成句子,也不愿有一条错误信息


这表明默认值nil可能会有所帮助。在我返回到所有表单输入并开始将它们定义为空白之前-还有其他解决方案吗?

您可以添加一个复选框,以在不存在时不渲染:

{state.data.title}
{state.data.PreregistrationEntities && state.data.PreregistrationEntities.map(PreregistrationEntities => <Paragraph><Text>This will be registered with {PreregistrationEntities.label}.</Text></Paragraph>)}
{state.data.title}
{state.data.PreregistrationEntities&&state.data.PreregistrationEntities.map(PreregistrationEntities=>这将在{PreregistrationEntities.label}中注册)
更完整的解决方案是在不存在时添加消息

{state.data.title}
{state.data.PreregistrationEntities ?
    state.data.PreregistrationEntities.map(PreregistrationEntities => <Paragraph><Text>This will be registered with {PreregistrationEntities.label}.</Text></Paragraph>)
    : <Text>PreregistrationEntities does not exist</Text>}
{state.data.title}
{state.data.PreregistrationEntities?
state.data.PreregistrationEntities.map(PreregistrationEntities=>这将在{PreregistrationEntities.label}中注册。)
:预注册实体不存在}

取决于预注册实体的来源。若表单最初是空的并不是问题,那个么Ageoff的答案应该是有效的。