我有一个通过props发送数据的提供者。在道具包含我需要的数据之前,它会发送约4-5个空值(“ mailto” mailadress)。由于空数据在发送邮件之前就已经存在,因此道具无法使用,因为它没有我需要的数据。因此,当我使mailadress或fitler出空值时,我需要以某种方式构造代码以进行更新。道具是一个字符串值。
目前我已经尝试过:
ccc
在这里,我有一个componedDitMount钩子(也尝试了该钩子),在该钩子中尝试滤除null值,但它不起作用。具有价值的道具似乎在生命周期的后期出现。不能在道具上做数组功能,也不能在单个字符串上做数组。
答案 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
是字符串数组还是仅仅是字符串。