无法读取 null 的属性(读取“类型”)

Posted

技术标签:

【中文标题】无法读取 null 的属性(读取“类型”)【英文标题】:Cannot read properties of null (reading 'type') 【发布时间】:2021-11-28 05:55:17 【问题描述】:

我的地图有问题,我不明白为什么它会给我错误无法读取 null 的属性,数组中的元素也不存在任何空值,所以我不明白为什么会发生此错误我。

state = 
    tableHead: [
        '', 'Lunedi', 'Martedi', 'Mercoledi'
    ],
    tableData: 
        value: [
            [ name: 'David', event1:  test: 'prova', test1: 'prova2' ],
            [ name: 'Lorenz', event1:  test: ['2', 'test'] , event2: '3', event3: '4' ],
            [ name: 'Victor', event1:  test: ['2', 'test'] , event2: '3', event3: '4' ],
            [ name: 'Franklyn', event1:  test: ['2', 'test'] , event2: '3', event3: '4' ],
        ],
    ,

这是我的组件渲染:

                            <Row data=this.state.tableHead style=styles.head textStyle=styles.text />

                            
                                this.state.tableData.value.map((rowData, index) => 
                                    console.log('test', rowData),
                                        <TableWrapper key=index style=styles.row>
                                            
                                                rowData.map((item, index) => 
                                                    console.log('item', item.name),
                                                        <Text textStyle=styles.text>item.name </Text>
                                                )
                                            
                                        </TableWrapper>
                                )
                            

                        </Table>
                 

【问题讨论】:

【参考方案1】:

很简单,只需添加 ?地图前。示例:

this.state.tableData?.value?.map [your code]

rowData?.map [your code]

【讨论】:

考虑解释? 运算符是什么以及它如何解决 OPs 问题【参考方案2】:

WillMount

state = undefined;

DidMount:

state = <your data>;

你的渲染函数在状态有值之前运行

解决办法是:你必须先检查数据

this.state.tableData?.value?.map
rowData?.map

检查这个:Optional Chaining

【讨论】:

以上是关于无法读取 null 的属性(读取“类型”)的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的类型错误无法读取 null 的属性(读取“查询选择器”)

错误类型错误:无法在styles.css 中读取null 的属性(读取'classList')

未捕获的类型错误:无法读取 null 的属性(正在读取“addEventListener”)Chrome 扩展

未捕获的类型错误:无法读取 null 的属性“getContext”

对象类型错误:无法读取 null 的属性“标题”

未捕获的类型错误:在输入单击时无法读取 null 的属性“样式”