为什么我会收到错误'无法读取属性' name' of null'使用解析后的字符串?

时间:2017-12-10 11:25:56

标签: javascript reactjs parsing object

这里我有一个react容器,它在一个名为strLoc:

的变量中保存一个对象

(var strLoc看起来像控制台记录的那样)

  

对象{name:" Burj Khalifa&#34 ;, locationLat:" 25.197787",locationLong:   " 55.274862"}

我想使用对象的name属性,但是当我尝试获取{strLoc.name}时,我收到一条错误消息:

  

未捕获的TypeError:无法读取属性' name'为null

我不明白为什么我不能仅仅使用属性值来使用它们?该问题是否与之前的对象是一个字符串有关(我解析了字符串并将结果对象保存在var strLoc中)?

这是我的代码:

class NoteOutput extends React.Component {
    render() {
        var strLoc = JSON.parse(this.props.location); 
        return(
            <div>
                <div>hello</div>
                <div>{strLoc.name}</div>
            </div>
        );
    }
}

function mapStateToProps(state) {
    return {
        location: state.selectedLocation
    };
}

1 个答案:

答案 0 :(得分:1)

可能是因为你在render()中有解析,并且在解析之前它会尝试显示字符串的.name。

试试这个:

{strLoc && <div>{strLoc.name}</div>}