javascript - 为什么在使用解析的字符串时出现错误 'Cannot read property ' name' of null'?

标签 javascript reactjs parsing object

这里我有一个 react 容器,它在名为 strLoc 的变量中保存一个对象:

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

Object {name: "Burj Khalifa", locationLat: "25.197787", locationLong: "55.274862"}

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

Uncaught TypeError: Cannot read property 'name' of 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
    };
}

最佳答案

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

试试这个:

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

关于javascript - 为什么在使用解析的字符串时出现错误 'Cannot read property ' name' of null'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47738343/

相关文章:

javascript - React 意外的 token ,预期为 "..."

javascript - 为什么不响应代理请求

java - Json Parse 无法正常工作,但适用于 jsontest

javascript - AngularJS 实现 ui-grid

javascript - 由于文档准备好且 DOM 较大,jquery 点击触发速度非常慢

javascript - 如何将参数传递给 addEventListener 的回调函数

java - 我的方法一直说我需要返回一个字符串,但我的方法有一个返回字符串的返回语句

javascript - node.js 无法识别 unfluff 模块中的 url

javascript - 在其他函数中响应组件异步等待

android - jsoup 解析 tr,td 与类和 id for 循环