状态更改时,使用状态的自定义组件不会更新

时间:2018-12-13 14:40:01

标签: javascript react-native components uri

我目前正在使用require在构造函数中设置默认图片源

constructor(props) {
super(props);
    this.state = {
       name: '',
       pictureSource: require('../assets/images/robot-dev.png')
    };
}

我的自定义组件正在使用pictureSource作为道具,而我的TextInput正在使用名称:

<EditableRoundedImage picture={this.state.pictureSource}/>
<Text style={styles.name}>{this.state.name}</Text>

---Inside EditableRoundedImage---

constructor(props) {
   super(props);
   this.state = {
     image: this.props.picture
   };
}
<Image style={styles.roundedImage} source={this.state.image} />

在componentDidMount生命周期方法中,im会获取一些数据并随后更改pictureSource / name:

this.setState({
      name: jsonResponse.firstName + " " + jsonResponse.lastName,
      pictureSource: {uri: jsonResponse.imageUrl}
    })

* jsonResponse.imageUrl具有以下内容:https://ph-files.imgix.net/b5541240-7da7-4bf0-8dc2-c9e911b283f2?auto=format&auto=compress&codec=mozjpeg&cs=strip

由于某种原因,新获取的图片未显示在应用程序中,但名称显示了。我想知道这是否与{uri:}表示法有关,或者我是否正在监督某些事情。

谢谢!

1 个答案:

答案 0 :(得分:0)

您正在将this.state.image分配给图像源。但是您知道状态没有名为image的属性。这可能是问题吗?