gpt4 book ai didi

javascript - 如何摆脱 React 应用程序中的 "Functions are not valid as a React child"警告

转载 作者:行者123 更新时间:2023-12-02 21:45:24 24 4
gpt4 key购买 nike

我是 React 新手,正在借助 Hooks 在 React 中开发简单的 CRUD 应用程序。
该应用程序有两个表单组件 AddUserFormEditUserForm相应地添加和编辑用户列表。还有一个显示用户列表的组件(但我没有收到警告)。
一切正常,但我的浏览器控制台中出现以下警告消息:
Functions are not valid as a React child. This may happen if you return a Component instead of <Component /> from render. Or maybe you meant to call this function rather than return it.

以下是我在 App.js 文件中渲染子组件的方式。 (我用红色箭头标记了有警告的行)

enter image description here

enter image description here

更新这是我处理 AddUserForm 中的表单的方式组件:

return (
<Fragment>
<form> // line 15, here I have warning as well
onSubmit=
{event => {
event.preventDefault();
if (!user.name || !user.username) return;

props.addUser(user);
setUser(initialFormState);
}}
<label>Name</label>
<input type='text' name='name' value='' onChange={handleInputChange} />
<label>Username</label>
<input
type='text'
name='username'
value=''
onChange={handleInputChange}
/>
<button>Add new user</button>
</form>
</Fragment>
);

我检查了一些解决方案,例如here但它们都对这个问题没有帮助。
你能告诉我我做错了什么吗?

最佳答案

我认为这只是一个拼写错误:

<form> // You just closed form element, so 
onSubmit=
{event => { // this is a function returned as a React child
event.preventDefault();
if (!user.name || !user.username) return;

props.addUser(user);
setUser(initialFormState);
}}
<label>Name</label>
<input type='text' name='name' value='' onChange={handleInputChange} />
<label>Username</label>
<input
type='text'
name='username'
value=''
onChange={handleInputChange}
/>
<button>Add new user</button>

应该是这样的:

<form // Note the missing >
onSubmit=
{event => { // this is a function returned as a React child
event.preventDefault();
if (!user.name || !user.username) return;

props.addUser(user);
setUser(initialFormState);
}}> // form opening tag closed here

这实际上不是 React 问题,而是无效的 HTML 导致 React 抛出错误,因为它无法解析和渲染 JSX。

关于javascript - 如何摆脱 React 应用程序中的 "Functions are not valid as a React child"警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60262527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com