Функциональность подсчета карт реагирует на родную - PullRequest
0 голосов
/ 10 мая 2019

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

Вот моя главная страница, на которой я вызываю компонент:

<Header headerTitle={this.state.wineD.name} lefticonType={'back'} navigation={this.props.navigation} />

Вот код компонента:

componentDidMount(){
  //API code here and updating response count in state.
  if(response.data.success){
    this.setState({
        cartItems: (response.data.data.cart.items != '' && (response.data.data.cart.items).length > 0)?
        (response.data.data.cart.items).length : 0
    })
    this.props.changeLoaderStatus();
   }
}

<FlatHeader
        leftIcon={<Icon name={leftIcon} size={20} color="#FFF" />}
        leftIconHandler={() => {
          (this.props.lefticonType == 'bars' ?
          this.props.navigation.dispatch(DrawerActions.openDrawer())
          : goBack())
        }}
        centerContent={
                    <View style={{width: width*0.7,alignItems:'center'}}>
                        <Text numberOfLines={1} style={{ color: '#FFF',fontSize:22,fontWeight:'bold' }}>{this.props.headerTitle}</Text>
                    </View>
                }
        rightIcon={<Group><Icon name="shopping-cart" size={20} color="#FFF" />
        <View style={{width:16,height:16,borderRadius:8,backgroundColor:'red',justifyContent:'center',
        alignItems:'center',marginBottom:14}}>
        <Text style={{fontSize:10,color:'#fff',fontWeight:'bold'}}>{this.state.cartItems}</Text></View></Group>}
        rightIconHandler={() => this.props.navigation.navigate('Cart')}
        large
        style={{ backgroundColor: '#d7b655' }}
      />

Это экран, на котором другой компонент обновляет корзину

enter image description here

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

1 Ответ

0 голосов
/ 10 мая 2019

Если я правильно понял вашу проблему, вам может потребоваться изменить this.setState следующим образом:

componentDidMount(){
  //API code here and updating response count in state.
  if(response.data.success){
    this.setState({
        cartItems: (response.data.data.cart.items != '' && (response.data.data.cart.items).length > 0)?
        (response.data.data.cart.items).length : 0
    },()=>{
this.props.changeLoaderStatus(); }) } }

попробуйте это и дайте мне знать, если это работает для вас.

...