鉴于我的代码:
class Example extends Components {
constructor(props) {
super(props)
}
componentDidMount() {
//fetch data
}
render() {
const {obj} = this.props;
if(R.isEmpty(obj)) {
return null;
}
return (<div>{obj.name}</div>)
}
}
从服务器检索obj
。因此,对于初始渲染,obj
为空。如果我没有返回null,obj.name
将报告错误
在我收到服务器响应之前返回null
是一个好习惯吗?感谢
答案 0 :(得分:2)
是的,这是正确的方法。如果不想render
任何return null
。
如果你想等到response
并按住rendering
,那么还有一件事,你也可以return
:
if(R.isEmpty(obj)) {
return <div>Loading...</div>
}
通过这种方式,用户将会知道某些事情正在发生,某些数据正在从server
获取,我认为这更直观。
答案 1 :(得分:0)
所以在我收到回复之前返回null是一个好习惯 服务器?
可以这样做,但也取决于具体情况。 例如,在某些情况下,您可以完全避免渲染组件:
class ParentComp extends Component {
render() {
return (
<div>
{!R.isEmpty(obj) && <Example obj={obj}/>}
</div>
);
}
}