首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误:“对象作为React子对象无效”如何通过React.createElement将属性添加到组件中?

错误:“对象作为React子对象无效”如何通过React.createElement将属性添加到组件中?
EN

Stack Overflow用户
提问于 2019-10-08 07:40:18
回答 3查看 119关注 0票数 0

谢谢你阅读我的问题。我是一个新的ReactJS。我在使用React.createElement创建组件时遇到了问题。我不知道在使用React.createElement时是否设置了一个以上属性,如下所示:

代码语言:javascript
运行
复制
render() 
  {
    return React.createElement('input',
    {onChange: () => this.handleChange},
    {value: () => this.state.value}
    );
   }

React给出一个错误:

对象作为React子对象无效。

在以这种方式编写代码的组件中,如何询问多个属性?非常感谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-08 07:50:12

createElement对(受支持的)属性使用第二个支持参数。所以你可以这么做

代码语言:javascript
运行
复制
render() {
return ( React.createElement('input', {
  onChange: (e) => this.handleChange(e),
  value: this.state.value
  }
 )
);
}

沙盒希望能帮上忙

票数 1
EN

Stack Overflow用户

发布于 2019-10-08 07:55:41

React.createElement支持3个参数,而且您传递的是错误的方式,onChangevalue参数需要进入对象内部,如下所示:

代码语言:javascript
运行
复制
render() {
  return (
    React.createElement(
      'input',
      {  onChange: () => this.handleChange, value: () => this.state.value}
      // If you need to pass a Children, will go here
    )
  );
}

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2019-10-08 08:05:09

代码语言:javascript
运行
复制
React.createElement(first, second, third)

React.createElement函数有三个参数:

First,是您想要创建的元素的类型,比如"div""span""input",作为字符串传递。

第二个,参数是元素的属性,如onClick()value等。我们以像{onClick: ()=>{}, value:'submit', id='button' }这样的对象的形式给出这些属性。

第三次,参数是子参数,意味着要作为元素的innerHTML放置的值。例子:-

代码语言:javascript
运行
复制
<div>this is the innerHTML</div>

因此,您的第三个参数是要将其括在元素标记中的值。

您所得到的错误是因为无法将第三个参数作为对象传递,因此必须在第二个参数中定义所有属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58282033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档