通常,与redux和javascript一起使用时,我发现自己输入了冗长的代码行以在对象中使用单个值。
const mapStateToProps = (state) => ({
valueIwant: state.data && state.data.user && state.data.user.valueIWant || ''
})
Run Code Online (Sandbox Code Playgroud)
我知道我可以设置默认状态,但在许多情况下,data对象可能来自API调用或者也许我吨data1,data2,data3等所有来自API的,它不是写的默认状态是可行的所有的人。
有没有捷径可以做到这一点?
这里将是,你可以,如果你使用的是巴贝尔或类似(这你可能是,如果你正在使用反应)使用它今天:可选链接。
const mapStateToProps = (state) => ({
valueIwant: state.data?.user?.valueIWant || ''
// ^-----^------------------- ***
})
Run Code Online (Sandbox Code Playgroud)
的?.装置,如果在其前面的值是null或undefined,表达式结束那里,其结果是undefined。
您还可以将无效的合并运算符扔给它:
const mapStateToProps = (state) => ({
valueIwant: state.data?.user?.valueIWant ?? ''
})
Run Code Online (Sandbox Code Playgroud)
这仅使用''在到底是先于为null或undefined(而不是其他falsy值一样0,''等)。
这两个提议都是第3阶段,JavaScript引擎正在积极地增加对它们的支持。(Chrome的V8引擎当前具有可选的链接,但位于标志后面。)
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |