必须返回有效的 ReactComponent.您可能返回了未定义的数组或其他一些无效对象
A valid ReactComponent must be returned. You may have returned undefined, an array or some other invalid object
我正在构建一个小的反应js应用程序,我得到这个错误:
未捕获的错误:不变冲突:export.render():有效的 必须返回 ReactComponent。您可能返回了未定义、 数组或其他一些无效对象。
这些是我的源文件: App.jsx
var React = require('react');
var Chats = require('./chats');
var messages = {
chatMessages: [{
name: ' John Doe',
message: ' Hey Lisa, how are you doing?'
},{
name: 'Lisa Johnson',
message: 'Pretty good, how are you?'
}]
}
var App = React.createElement(Chats, messages)
React.render(App, document.querySelector('.container'));
聊天.jsx
var React = require ('react');
var Chat = require ('./chat');
var Chats = React.createClass({
render:function(){
var chats = this.props.chatMessages.map(function(chatProps){
return <Chat {...chatProps} />
});
return (
<div>
{chats}
</div>
)
}
});
module.exports = Chats;
和聊天.jsx
var React = require ('react');
var Chat = React.createClass ({
render:function (){
return
<div>
<p>{this.props.name}</p>
<span> {this.props.message} </span>
</div>
}
});
module.exports = Chat;
我认为问题出在我的地图功能上,但我真的希望有人告诉我我在哪里犯了错误。
我从GitHub下载了你的代码。正如我所怀疑的那样,问题是将组件包装在return
的括号中.从上面更新的代码中,您没有在Chat
组件上执行此操作。这是必要的,因为转换后的React.createElement
值将驻留在return
之后的下一行,永远不会实际运行。以下是更改后的函数:
var Chat = React.createClass({
render: function () {
return (
<div>
<p>{this.props.name}</p>
<span> {this.props.message} </span>
</div>
);
}
});
此外,就其价值而言,您的App
组件是多余的。你可以这样做:
React.render( <Chats {...messages} />, document.querySelector( '.container' ) );
相关文章:
- 如何从ipify函数返回ip地址,以便在其他函数中使用
- 如何将日期选择器返回的日期格式转换为其他格式
- 有没有办法将选择器返回到元素?是$(这个)还是其他方法
- 从异步调用返回数组,然后为数组的每个元素返回其他异步调用
- 根据其他属性返回的值设置属性
- 如果's,如果未安装,则返回到其他URL
- AJAX请求返回Javascript获胜't返回特定函数,但将返回其他函数
- JavaScript:通过其他数组元素的索引访问ArrayElement?array[array[0]返回undefin
- 返回带有其他函数的变量
- 为什么 Math.log10 在某些系统上工作,但在其他系统上返回未定义
- 为什么SQL返回的字符串长度与其他语言返回的长度不同
- 如何防止谷歌地理编码器从其他国家/地区返回结果
- 如何设置我们从 JavaScript 中其他元素的属性返回的值 onclick 函数
- Jquery ajax 请求无法将数据返回给其他函数
- 在两个或多个 UL 列表之间切换,如果单击一个列表,则其他列表会自动以初始状态返回,就像从未单击过一样
- 维基百科API解析操作仅返回“其他语言”部分
- JQuery ajax 将值返回给其他函数
- 阻止其他代码运行,直到 AJAX 请求返回某些内容
- Javascript在IE7,8,9中返回控制台错误,但在所有其他浏览器中都能完美运行
- 我可以将字段保留在填充的表单中,即使我移动到其他页面然后返回