我对 React 很陌生,我正在开发一个显示某些组件的应用程序,如下所示:
{asset.exists && (
<SomeComponent/>
)}
但是,这似乎有点笨拙,而且我不断遇到这似乎不是最好的方法的情况。
就像下面的例子:
{user.email == asset.email &&
<SomeComponent
这不起作用,因为在执行此代码时用户未定义。我认为 ComponentDidMount 是正确的解决方案。但是,我无法让它工作。我基本上正在寻找处理这种情况的正确方法,或者确认 ComponentDidMount 是正确的方法
最佳答案
您可以通过链接 &&
来提供所需数量的检查。例如,检查 user
是否真实,并检查 user.email
是否真实 && 检查 user.email
是否与 asset.email< 匹配
:
{user && user.email && (user.email === asset.email) &&
// render something
}
考虑到您可能会发生复杂的验证,您还可以考虑将其移动到一个函数以将逻辑包含在集中位置:
isValidUser(user, asset) {
return user && user.email && (user.email === asset.email);
}
// ...
// may be without 'this' depending on location of function
{this.isValidUser(user, asset) &&
// render something
}
希望有帮助!
关于javascript - 如果对象未定义,加载组件的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52785510/