0

目前正在开发一个 SendBird 和 react-native 项目,该模块是关于将自动生成的配置文件图像更改为profileUrl从手机相机或画廊存储中获取的新图像。但是,我输入的以下代码不起作用,它要么显示错误,要么应用程序冻结。我可以知道我在哪里做错了吗?(使用 react-native-image-picker 上传/选择图像)。

    _changeProfileImg(){
    ToastAndroid.show('ClickedImage', ToastAndroid.SHORT);
    var _Self = this;
    var source = [];

    ImagePicker.showImagePicker(options, (response) => {
        if (response.didCancel){
            console.log('user canceled image picker');
        }
        else if (response.error){
            console.log('imagePicker error', response.error);
        }
        else if (response.customButton){
            console.log('customised clicked', response.customButton);
        }
        else{
            source = {uri:response.uri};
            // const source = { uri: 'data:image/jpeg;base64,' + response.data };
            this.setState({
                profileUrl: source,
            });
        }
    });
}

render(){
    return(
        <View style={styles.container}>

            <View style={styles.contentFlex}>
            <Text>{this.state.profileUrl}</Text>

                <Avatar
                    rounded
                    size="xlarge"
                    source={{uri: this.state.profileUrl}}
                    onPress={this._changeProfileImg.bind(this)}
                    activeOpacity={0.7}
                />
        </View>
4

1 回答 1

0

您应该只分配response.uriin the profileUrlnot{uri: response.uri}因为您已经指定了inuri喂食sourcethe profileUrlin avatar

于 2018-11-29T11:00:04.313 回答