首先请求返回两个列表:list1
,list2
。
所以我需要立即渲染list1
。但对于list2
我需要检查第二个请求然后显示他。哪里有更好的地方呢?
P.S。现在,我在componentDidMount
项list2
中执行此操作。 isChecking - 在请求结束时设置为true并给出结果。
const Container = (props) => <div>
{props.list1.map(item => <Item {...item} />)}
{props.list2.map(item => <Item {...item} check={true}/>)}
</div>;
class Item extends React.Component {
componentDidMount() {
if (check) {
this.props.checkRequest();
}
}
render() {
if (this.props.check && !this.props.isChecking) {
return <span />;
}
return <div>{item.name}</div>;
}
}
答案 0 :(得分:0)
如果您不需要list1
的检查逻辑,则可以直接映射它而不使用Item
组件,如下所示:
const Container = (props) => <div>
{props.list1.map(item => <div>{item.name}</div>)} // <------- no Item component here
{props.list2.map(item => <Item {...item} check={true}/>)}
</div>;
class Item extends React.Component {
componentDidMount() {
if (check) {
this.props.checkRequest();
}
}
render() {
if (this.props.check && !this.props.isChecking) {
return <span />;
}
return <div>{item.name}</div>;
}
}