从空值中滤除道具

时间:2019-03-18 12:17:53

标签: javascript reactjs typescript

我有一个通过props发送数据的提供者。在道具包含我需要的数据之前,它会发送约4-5个空值(“ mailto” mailadress)。由于空数据在发送邮件之前就已经存在,因此道具无法使用,因为它没有我需要的数据。因此,当我使mailadress或fitler出空值时,我需要以某种方式构造代码以进行更新。道具是一个字符串值。

目前我已经尝试过:

ccc

在这里,我有一个componedDitMount钩子(也尝试了该钩子),在该钩子中尝试滤除null值,但它不起作用。具有价值的道具似乎在生命周期的后期出现。不能在道具上做数组功能,也不能在单个字符串上做数组。

1 个答案:

答案 0 :(得分:0)

首先,您说过“在props包含我需要的数据之前,它会发送大约4-5个空值” :这意味着您的Component将没有您第一次使用的prop。呈现。
为什么这么重要?因为您使用了componentDidMount(),所以只有在第一次安装组件时才调用它;对于您而言,由于您所说的话,componentDidMount()等于this.props.url时将运行null

说,正如某些用户在评论中所说,IF语句也是错误的。

无论如何,您应该这样写:

componentDidUpdate() {
    if (this.props.url) {
        // Here you have this.props.url with some value    
    }
}

请注意,如果您100%确信首先呈现Component,则它实际上不需要实现componentDidMount,其props不包含所需的数据。

我还没有在IF语句中编写代码,因为我不确定this.props.url是字符串数组还是仅仅是字符串。