React.js状态问题
React.js State Issue
我有下面的jsfiddle,我正在尝试筛选记录,所以一旦选择了类别,我只想显示该类别的结果。不确定我对各州缺少什么。
https://jsfiddle.net/kkhwabzr/
var App = React.createClass({
render: function() {
return (
<div>
<Instructions />
<h1>Requests</h1>
</div>
);
}
});
您需要监控主应用程序组件的选择状态。现在,您正在跟踪MySelect组件中的选择。这意味着应用程序组件没有这些信息,不能将其作为道具传递给DisplayRecords组件。
正确的方法是将选择作为状态变量保留在应用程序组件中,并将其值和onChange处理程序作为道具传递给MySelect组件:
getInitialState: function() {
return { selected: "All Requests" }
},
onChange:function(e){
this.setState({selected: e.target.value})
},
render: function() {
return (...
<MySelect selected={this.state.selected} onChange={this.onChange} />
<DisplayRecords records={this.props.data.filter(this.filterRecord)}
...)
}
如前所述,您可以使用过滤器来获得正确的记录,但您也应该考虑到"所有请求"的情况,即您希望返回所有记录,因此:
filterRecord: function(record) {
if(this.state.selected === null) return true;
return (record.status === this.state.selected || this.state.selected === "All Requests");
}
有关代码的工作示例,请参阅jsfiddle:https://jsfiddle.net/kkhwabzr/3/
我已经尽可能少地修改了它,这样你就可以理解代码是如何在你的版本和工作版本之间发生变化的。注意,我还在使用React时添加了建议的标记(从表中删除行会导致TypeError),并更改了{value:…}值,使其在record.status和组件状态之间保持一致。
相关文章:
- React.js状态问题
- 使用$.data()更改click事件的状态时出现问题
- Chrome动画CSS3三维立方体与悬停状态问题
- HTML5/jQuery:回推状态问题
- 角度 UI 状态转换问题
- 将状态设置为“输入名称”字段的值时遇到问题
- 在 JavaScript 函数中保持变量处于活动状态时出现问题
- 在 ui 路由器中将参数传递到子状态时出现问题
- j查询悬停问题 - 最后一个 li 元素保持悬停状态
- 重置状态导致 React mixin 出现问题
- 角度状态的问题和解决方案
- React.js中setInterval内的访问状态问题
- 问题显示twitter状态/user_timeline MVC3.Net
- 使用<脚本src=..查找站点的状态代码-安全问题
- 在维护自定义jQuery菜单上的状态时遇到问题
- Onkeyup或onkeypress javascript事件问题-密码状态更新
- Javascript的问题.无法更新状态
- ReactJS -检测状态变化的问题
- Angular状态提供程序抛出的问题无法解决状态错误
- WshShell运行不等待,但执行状态更新(运行vs执行问题)