Javascript 未处理的拒绝(TypeError):无法读取未定义的属性
我无法找到为什么我无法获取数据,而我可以通过console.log()访问它 当我运行此命令时,一切正常,我可以通过控制台查看数据: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:
{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>)