Redux store обновляется корректно, но реагирует на реквизиты компонентов.Я проверил избыточное глобальное состояние с помощью инструмента удаленной разработки, и он обновляется, как и ожидалось.Но когда я проверяю реквизиты компонентов с помощью response-devtools, он не обновляется.Если я вызываю getUserPublis () в компоненте более высокого порядка (например, индекс), тогда mapStateToProps правильно отображает эти реквизиты, но когда я создаю новый элемент, он не отображается (но он корректно обновляется в хранилище).Это похоже на то, что mapStateToProps () не вызывается при обновлении состояния избыточности
class Profile extends Component {
static navigationOptions = ({navigation, screenProps}) => ({
title: 'Perfil',
headerRight: <HeaderButton navigation={navigation}/>,
});
componentDidMount(){
getUserPublis(this.props.userData.ownPublis)
}
onPressCard = (publi) => {
this.props.navigation.navigate('cardDescription', {
data: publi,
user: props.userName
})
}
maybeRenderAddButton = () => {
if (this.props.userData.isCommerce){
return(
<FloatingButton
icon="md-add"
color="white"
onPress={() => this.props.navigation.navigate('offerNew', {
title: "Crear anuncio"
})}
/>
)
} else {
return console.log('no hay add button')
}
}
render(){
this.maybeRenderAddButton()
if (this.props.publis.length === 0) {
return(
<Text> Loading </Text>
)
}
return (
<ScrollView>
{
this.props.publis.map((publi, index) => {
return(
<CardGeneral
key={index}
onPressCard={() => onPressCard(publi)}
data={publi}
user={this.props.user.displayName}
/>
)
}
)
}
</ScrollView>
);
}
}
function mapStateToProps(state) {
return {
user: state.auth.user,
userData: state.firestore.userData,
publis: state.publis
}
}
export default connect(mapStateToProps)(Profile)
Редуктор:
const initialState = []
function publis(state = initialState, action) {
switch (action.type) {
case 'FIRESTORE_PUBLI_SNAPSHOT': {
return [
...state,
action.payload.data
]
}
default:
return state
}
}
export default publis