Как использовать response-native-image-picker с Redux в React-native - PullRequest
1 голос
/ 11 апреля 2020

Я пытаюсь использовать функцию response-native-image-picker внутри редуктора для изменения аватара, но изображение не меняется.

Я могу решить эту проблему, написав функцию выбора изображений внутри аватара . js файл, но я хочу использовать этот способ.

, если кто-нибудь знает, как решить эту проблему, пожалуйста.

вот мой код:

avatarReducer. js


    import ImagePicker from 'react-native-image-picker';

    const initialState = {avatar: require('../../Images/ic_tag_faces.png')};

    function setAvatar(state = initialState, action) {
      var nextState;
      switch (action.type) {
        case 'SET_AVATAR':
          ImagePicker.showImagePicker({}, response => {
            if (response.didCancel) {
              console.log("L'utilisateur a annulé");
            } else if (response.error) {
              console.log('Erreur : ', response.error);
            } else {
              console.log('Photo : ', response.uri);
              var requireSource = {uri: response.uri};
              nextState = {
                ...state,
                avatar: requireSource,
              };
              return nextState || state;
            }
          });
          return state;
        default:
          return state;
      }
    } // end function

    export default setAvatar;

Аватар. js


    import React from 'react';
    import {StyleSheet, Image, TouchableOpacity} from 'react-native';
    import {connect} from 'react-redux';

    class Avatar extends React.Component {
      constructor(props) {
        super(props);
      }

      _setAvatar() {
        const action = {type: 'SET_AVATAR'};
        this.props.dispatch(action);
      }

      render() {
        return (
          <TouchableOpacity
            style={styles.touchableOpacity}
            onPress={() => this._setAvatar()}>
            <Image style={styles.avatar} source={this.props.avatar} />
          </TouchableOpacity>
        );
      }
    } // end class

    const mapStateToProps = state => {
      return {
        avatar: state.setAvatar.avatar,
      };
    };

    export default connect(mapStateToProps)(Avatar);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...