reactjs - ReactJs TypeError default.a.render 不是函数
问题描述
我正在尝试使用Auth0EditProfileWidget
在第 65 行出现错误:
this.form = React.render( <FormControl data={data} onSubmit={onSubmit} />, container );
类型错误:react__WEBPACK_IMPORTED_MODULE_0___default.a.render 不是函数
有谁能够帮我?
编辑:代码
import React from 'react';
import formSerialize from 'form-serialize';
import FieldTypeMapper from './FieldTypes/FieldTypeMapper'
class FormFieldList extends React.Component {
render() {
var fieldNodes = this.props.data.map( data => FieldTypeMapper(data.type)(data) );
return ( <div>{fieldNodes}</div> );
}
}
class ErrorItem extends React.Component {
render() {
return ( <li>{this.props.message}</li> );
}
}
class ErrorControl extends React.Component {
render() {
var errors = this.props.data.map( error => ( <ErrorItem key={error} message={error} /> ) );
var style = {};
if (errors.length === 0) {
style.display = 'none';
}
return ( <ul className="error" style={style}>{errors}</ul> );
}
}
class FormControl extends React.Component {
constructor(props) {
super(props);
this.handleSubmit = this.handleSubmit.bind(this);
this.state = props.data;
}
render() {
return (
<form onSubmit={this.handleSubmit} ref="editProfileForm">
<ErrorControl data={this.state.errors} />
<FormFieldList data={this.state.fields} />
<input type="submit" value="Save" />
</form>
);
}
handleSubmit(e) {
e.preventDefault();
var form = this.refs.editProfileForm.getDOMNode();
var data = formSerialize(form, {hash: true});
this.props.onSubmit(data);
}
}
export default class EditProfileForm {
constructor(container, data, onSubmit) {
this.form = React.render( <FormControl data={data} onSubmit={onSubmit} />, container );
}
render(data) {
this.form.setState(data);
}
}
解决方案
export default class EditProfileForm {
constructor(container, data, onSubmit) {
this.form = React.render( <FormControl data={data} onSubmit={onSubmit} />, container );
}
render(data) {
this.form.setState(data);
}
}
这里要注意的事情,首先,是EditProfileForm
不是一个反应组件,因为EditProfileForm
不扩展React.Component
第二件事是你为什么使用它正在做的事情this.form.setState(data);
的价值是什么。setState
this.form.setState()
推荐阅读
- python - 总和每行字符串的出现次数
- excel - 如何防止 Excel VBA 错误:EXCEL.EXE 中出现未处理的 win32 异常 [14756]
- ios - 当应用程序进入后台时,URLSessions 给 URLResponse nil
- java - 从不属于 hadoop 集群/edgenode 的机器运行带有 SSL 的 OOZIE java 客户端
- java - Java继承层次动物类
- excel - VBA比较2张,将旧评论移至新表
- php - Wordpress:http/https超链接问题
- javascript - moment.js – 获取数组的下一个现有日期
- android - 查找特定的位置并将 WebView 滚动到它
- php - 使用 WYSIWYG 传递表单帖子