Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未处理的拒绝(TypeError):无法读取未定义的属性_Javascript_Reactjs - Fatal编程技术网

Javascript 未处理的拒绝(TypeError):无法读取未定义的属性

Javascript 未处理的拒绝(TypeError):无法读取未定义的属性,javascript,reactjs,Javascript,Reactjs,我无法找到为什么我无法获取数据,而我可以通过console.log()访问它 当我运行此命令时,一切正常,我可以通过控制台查看数据: {ticket: {…}}ticket: {success: true, data: {…}, error: "", message: ""}data: {result: "success", ticketid: 22, tid: "168552", c: "WHgCsCBO", deptid: 5, …}error: ""message: ""success:

我无法找到为什么我无法获取数据,而我可以通过console.log()访问它

当我运行此命令时,一切正常,我可以通过控制台查看数据:

{ticket: {…}}ticket: {success: true, data: {…}, error: "", message: ""}data: {result: "success", ticketid: 22, tid: "168552", c: "WHgCsCBO", deptid: 5, …}error: ""message: ""success: true__proto__: Object__proto__: Object
但当我想在视图中显示数据时,如下所示:

render(){
    return( <span className="label label-warning">
                            {this.state.ticket.data.status}
                        </span>)
render(){
报税表(
{this.state.ticket.data.status}
)

我收到以下错误:TypeError:无法读取未定义的属性“status”

您已将状态初始化为:

this.state = {
    ticket: ''
}
因此,在第一次渲染时,this.state.ticket是一个空字符串,而this.state.ticket.data是未定义的。只有在以后才将state.ticket更新为对象


要解决此问题,请将初始状态设置为与渲染方法一起使用的状态,或者让渲染方法检查是否存在空字符串。

我不确定它是否完美,但应该可以正常工作:

render(){
    return( <span className="label label-warning">
                            {this.state.ticket.data.status ? this.state.ticket.data.status : null}
                        </span>)
render(){
报税表(
{this.state.ticket.data.status?this.state.ticket.data.status:null}
)

如何使我的呈现方法检查空字符串的可能性?例如,如果您不想呈现任何内容:
如果(this.state.ticket===''{return null}
否,结果相同:无法读取未定义的属性'status',关于{this.state.ticket?this.state.ticket.data.status:null}的属性是什么(){return({this.state.ticket.data?this.state.ticket.data.status:null})@ingvar发生相同的错误…哎呀。
{this.state.ticket?this.state.ticket.data.status:null}
应该可以工作
render(){
    return( <span className="label label-warning">
                            {this.state.ticket.data.status ? this.state.ticket.data.status : null}
                        </span>)