Я пытаюсь использовать функцию 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);