use*_*459 1 setstate computed-field reactjs
我有一个飞行状态,我有一个滑块可以更改最高价格以更改飞行元素的可见性.
maxpriceFilter() {
var flightOffer = this.state.flightOffer;
var sliderPrice = this.state.sliderPrice;
for (var i = 0; i < flightOffer.length; i++) {
if( flightOffer[i].price > sliderPrice) {
this.setState(
{[flightOffer[i].hiddenprice] : true}
);
};
}
Run Code Online (Sandbox Code Playgroud)
这段代码在状态的根目录中添加了一个状态为true的未定义字段.我无法找到任何最佳实践,除此之外使用计算字段.但我不能让计算字段工作..
有人可以帮帮我吗?
agm*_*eod 15
您不希望在循环中执行setState调用,这将使react组件呈现多次.构建一个新的状态对象并调用一次setState.您也不希望通过if语句对其进行过滤,而是将以前的值设置为隐藏:
maxpriceFilter() {
var flightOffer = this.state.flightOffer;
var sliderPrice = this.state.sliderPrice;
var newState = {};
for (var i = 0; i < flightOffer.length; i++) {
newState[flightOffer[i].hiddenprice] = flightOffer[i].price > sliderPrice;
}
this.setState(newState);
// ...
}
Run Code Online (Sandbox Code Playgroud)
如果您仍然遇到问题,那隐藏价格属性可能不是您所期望的?可能还需要发布你的render()函数.
| 归档时间: |
|
| 查看次数: |
7637 次 |
| 最近记录: |