【发布时间】:2018-01-01 11:58:28
【问题描述】:
我在react 中有一个代码,看起来像这样:
class UserManagement extends React.Component {
constructor() {
super();
this.state = {
users: undefined,
};
}
componentWillMount() {
// load the users state with a Promise
setTimeout(() => {
this.setState({users: []});
}, 800);
}
render() {
if ( this.state.users === undefined ) {
// until the users state is updated, I want to return an empty element
return null;
}
// real site rendering
return <div>We have users</div>;
}
}
ReactDOM.render(
<UserManagement />,
document.getElementById("root")
);
<div>Will be blank at first while we don't have users, then show "We have users" after 800ms when we have users</div>
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
我的问题是:如何在返回用户状态之前返回一个空元素?我尝试按照某些地方的建议返回(null),但浏览器会出现此错误:
未捕获的类型错误:无法读取 null 的属性“样式”
我知道返回 (<div></div>) 的选项,但我不确定这是否是这种情况下的最佳做法。
谢谢!
【问题讨论】:
-
@Rajesh 抛出与
(null)相同的错误 -
React 文档say you should be able to return
null,所以奇怪的是这不起作用。 -
返回
null工作正常。请使用 Stack Snippets([<>]工具栏按钮)用 runnable minimal reproducible example 更新您的问题,展示这样做的问题。 Stack Snippets 支持 React,包括 JSX; here's how to do one. -
我很抱歉。急忙发表评论。您是否在其他任何地方操作此组件的样式
-
@Rajesh:会是这样的,是的。 :-) 在他们更新之前,我们无法正确回答问题。
标签: javascript reactjs react-native jsx