【发布时间】:2015-12-28 17:06:51
【问题描述】:
我试图重复一个对象以在我的应用程序上显示一些带有反应的东西,如果我已经在对象中有项目,这工作正常,但起初(在我调用服务器之前)对象是空的,因此未定义所以它破坏了组件。我想知道处理这个问题的最佳方法是什么。我在反应背后使用immutable.js 和redux。我在组件的渲染中尝试了这样的事情:
render: function(){
var filterRepeat;
if (this.props.filters){
filterRepeat = { this.props.filters.map(function(filterGroup){
if (filterGroup.filters.length > 0){
return <myFilterCOmponent filterGroup={filterGroup} />
}
})
};
}
然后我就加入{filterRepeat},但它似乎不喜欢这种语法。我知道您可以对普通 html 执行此操作,但对于地图评估似乎有所不同。
我还尝试在 reducer 中默认设置它,看看我是否可以在其中设置一个默认值,并且像这样不可变:
import { Map } from 'immutable';
var presetState = Map();
presetState.set('filters', {});
export default function reducers(state = presetState, action) {
这似乎也不起作用。所以我想知道最好的方法是用反应来处理这样的事情吗?
【问题讨论】:
标签: javascript reactjs react-jsx immutable.js