从cameraRoll Uri中反映原生渲染图像

时间:2018-06-03 18:06:29

标签: react-native expo camera-roll

我拍了一张照片并用cameraRoll保存,然后我用cameraroll uri作为参数导航,这样我就可以在下一个视图中渲染图像,但是当下一个视图加载时没有错误,但是图像没有渲染:

      componentWillMount(){

      const params = this.props.navigation.state
      console.log('Params: ')
      console.log(params.params)
      let imageURL = params.params
      this.setState({imageUri:{
          uri: imageURL
        }
      });

    }

<View style={styles.container}>     
    <Image style={{flex: 1,flexDirection:'row', alignItems:'center', justifyContent: 'center'}} source={this.state.imageUri}/>             
</View>

风格:

container:{ flex:1, justifyContent:'flex-start',alignItems:'center'},

这是来自imageUrl的uri: 内容://媒体/外部/图像/媒体/ 21680

1 个答案:

答案 0 :(得分:0)

构造函数是您应该直接修改/初始化state的唯一时间(docs)。 imageUri的任何更改都应通过调用this.setState({imageUri: {uri: imageURL}})进行。

而不是

 constructor(props){
   super(props);
   const params = this.props.navigation.state
   console.log('Params: ')
   console.log(params.params)
   let imageURL = params.params
   this.setState({imageUri: {
     uri: imageURL
   }});
 }

你应该

constructor(props){
   super(props);
   const params = this.props.navigation.state
   console.log('Params: ')
   console.log(params.params)
   let imageURL = params.params
   state = {imageUri: {
     uri: imageURL
   }};
 }