这是我的代码:
(function() {
var Status, StatusBox, StatusForm, StatusList, button, div, h4, textarea, _ref;
_ref = React.DOM, div = _ref.div, textarea = _ref.textarea, button = _ref.button, h4 = _ref.h4;
StatusBox = React.createClass({
getInitialState: function() {
return {
data: []
};
},
loadStatusFromServer: function() {
return $.ajax({
url: this.props.url,
success: function(data) {
this.setState ({data : data})
}.bind(this),
error: function(xhr, status, err) {
console.error("status.json", status, err.toString());
}.bind(this)
});
},
componentWillMount: function() {
return setInterval(this.loadStatusFromServer, this.props.pollInterval);
},
render: function() {
return div({
className: "status-box"
}, [
StatusForm({}), StatusList({
data: this.state.data
})
]);
}
});
StatusList = React.createClass({
render: function() {
var statusNodes;
statusNodes = this.props.data.map(function(status) { // This is where is it throwing up an error. I have no idea why though?
return Status({
author: status.author
}, [status.text]);
});
return div({
className: "comment-list"
}, [statusNodes]);
}
});
Status = React.createClass({
render: function() {
return div({
className: "status"
}, [
h4({
className: "author"
}, [this.props.author]), this.props.children
]);
}
});
StatusForm = React.createClass({
handleClick: function() {
var name, value;
name = "Samuel";
value = this.refs.status.getDOMNode().value.trim();
return this.refs.status.getDOMNode().value = '';
},
render: function() {
return div({
className: 'status-form'
}, [
textarea({
placeholder: "What's on your mind?...",
rows: 5,
ref: "status"
}), button({
onClick: this.handleClick
}, ["post"])
]);
}
});
React.renderComponent(StatusBox({
url: '/user/blahXHR',
pollInterval: 5000
}), document.body);
}).call(this);
将代码修改为:
loadStatusFromServer: function() {
return $.ajax({
url: this.props.url,
dataType: 'json',
success: function(data) {
this.setState({data: data})
}.bind(this),
这里datatype:'json',
很重要。请参见$.ajax()
文档和SO的相关问题:
问题内容: 我正在使用reactjs,并且在尝试显示JSON数据(来自文件或服务器)时似乎无法阻止此错误: 这些都没有帮助我解决问题。在页面加载后,我可以验证this.data.props是否未定义(并且确实具有与JSON对象等效的值- 可以使用调用),因此当被调用时,似乎没有及时加载对话列表。如何确保该方法适用于JSON数据而不是变量? 编辑:添加示例conversations.json 注意-
问题内容: 我是React的新手,正在尝试编写使用API的应用程序。我不断收到此错误: TypeError:this.setState不是一个函数 当我尝试处理API响应时。我怀疑此绑定有问题,但我不知道如何解决它。这是我组件的代码: 问题答案: 回调是在不同的上下文中进行的。您需要这样做才能在回调内部进行访问: 编辑:看起来您必须同时绑定和调用:
问题内容: 自从我对JavaScript和React感到陌生以来,我确实在找出正确的语法方面遇到了问题。 这是我的问题: 应该调用该函数,但不会。我收到此错误,无法找出原因。回调可以正常工作。 当我尝试这种语法时,在编译时会立即出现错误。那是因为电子书吗? 问题答案: 当您使用ES6类而不是React.createClass时,它不会自动绑定 this 。 之所以: React.createCla
问题内容: 有人可以解释一下为什么 this.setState 不是函数吗? 我不明白为什么我的代码有错误 谢谢 问题答案: 这是问题。使用。
我正在用Bootstrap 4做一个react项目。引导程序已通过CDN导入。 我想要的是在满足条件的情况下显示/隐藏一个模态。我已经导入了jquery 在组件中 但是在执行上面的行时,它会显示一个错误,如 我读到了这个错误,它说可能是因为jquery与CDN和NPM一起导入了两次。我不确定原因是什么。但我也尝试过从一个方法导入jquery,但它不起作用。有什么建议吗?
我想了解为什么一段代码不会抛出NullPointerException。 请考虑以下代码: 方法被重复调用,同时以下代码在单独的线程中运行: 只有一个实例。 从不引发NullPointerException。 但是,当方法暂停时,即使暂停0毫秒,也会按预期引发NullPointerException: 我的理解是,在理论上,在检查和调用之间存在竞争条件。在实践中,如果不引入暂停(即从后续方法调用中