谢谢你阅读我的问题。我是一个新的ReactJS。我在使用React.createElement创建组件时遇到了问题。我不知道在使用React.createElement时是否设置了一个以上属性,如下所示:
render()
{
return React.createElement('input',
{onChange: () => this.handleChange},
{value: () => this.state.value}
);
}React给出一个错误:
对象作为React子对象无效。
在以这种方式编写代码的组件中,如何询问多个属性?非常感谢。
发布于 2019-10-08 07:50:12
createElement对(受支持的)属性使用第二个支持参数。所以你可以这么做
render() {
return ( React.createElement('input', {
onChange: (e) => this.handleChange(e),
value: this.state.value
}
)
);
}沙盒希望能帮上忙
发布于 2019-10-08 07:55:41
React.createElement支持3个参数,而且您传递的是错误的方式,onChange和value参数需要进入对象内部,如下所示:
render() {
return (
React.createElement(
'input',
{ onChange: () => this.handleChange, value: () => this.state.value}
// If you need to pass a Children, will go here
)
);
}希望这能有所帮助。
发布于 2019-10-08 08:05:09
React.createElement(first, second, third)React.createElement函数有三个参数:
First,是您想要创建的元素的类型,比如"div"、"span"、"input",作为字符串传递。
第二个,参数是元素的属性,如onClick()、value等。我们以像{onClick: ()=>{}, value:'submit', id='button' }这样的对象的形式给出这些属性。
第三次,参数是子参数,意味着要作为元素的innerHTML放置的值。例子:-
<div>this is the innerHTML</div>因此,您的第三个参数是要将其括在元素标记中的值。
您所得到的错误是因为无法将第三个参数作为对象传递,因此必须在第二个参数中定义所有属性。
https://stackoverflow.com/questions/58282033
复制相似问题