检查是否在mapStateToProps中未定义嵌套的prop

时间:2019-03-03 22:29:22

标签: reactjs react-redux

如果我们需要一个深层嵌套的道具,并且该值在每个级别都可能是不确定的。换句话说,我们需要检查每个级别的值是否未定义。这样做或完全避免这样做是什么好习惯?

一个简单的两级示例,假设深度为五或六...

const mapStateToProps = state => {
    return {
        formValues: state.form.section1 ? 
                      state.form.section1.input1? 
                        state.form.section1.input1.value 
                        : {} 
                      : {}
    };
};

我发现了这篇文章:Cannot read property something of null, mapStateToProps,但我怀疑树是否高是个好习惯。

1 个答案:

答案 0 :(得分:2)

我这样处理这种情况:

const mapStateToProps = state => {
return {
    formValues: state.form && state.form.section1 && state.form.section1.input1 ? 
      state.form.section1.input1.value : {}
   };
};

您可以避免嵌套三元运算,这不是一个好习惯。