javascript – React Native&Redux:为什么子组件不会在每次状态更新时重新呈现?

在React Native和Redux中,我有一个< NavigationCardStack />作为根组件.每次状态更新时,redux-logger都会在下一个/新状态下正确更新.

并且在状态更改之后,当新更新的状态是控制台登录子组件时,它不会控制日志更新状态,而是控制台记录初始状态(在子组件childPage.js和logging:render(){console .log(this.props.state)return(…)…).

可能是因为我错误地连接到Redux或者丢失了什么东西?因为,一切看起来都很完美,也很有意义.

先感谢您!

以下是我的代码的一些片段:

这是我的reducer,子组件只会在这里记录initialState,即使已经添加和更新了其他属性

const initialState = {
  meetUp: false,}

function itemReducer(state = initialState,action) {
  switch(action.type) {


    case ITEM_QUANTITY:
      return {
        ...state,quantity: action.quantity
      }

    case ITEM_PRICE:
      return {
        ...state,price: action.price
      }

    case ITEM_MEET_UP:
      return {
        ...state,meetUp: action.meetUp
      }

     default:
       return state
  }
}

export default itemReducer

并连接到根组件,如下所示:

function mapStatetoProps(state) {
  return {
    itemInfo: state.itemReducer,...
  }
}

export default connect(
  mapStatetoProps,{
    itemQuantity: (value) => itemQuantity(value),itemPrice: (value) => itemPrice(value),itemmeetUp: (value) => itemmeetUp(value),}
)(NavigationRoot)

通过以下操作:

export function itemmeetUp(value) {
  return {
    type: ITEM_MEET_UP,meetUp: value
  }
}

export function itemQuantity(value) {
  return {
    type: ITEM_QUANTITY,quantity: value
  }
}

export function itemPrice(value) {
  return {
    type: ITEM_PRICE,price: value
  }
}

state = {this.props}表示状态以及如何将其传递给子组件

_renderScene (props) {
    const { route } = props.scene

    return (
      <route.component _handleNavigate={this._handleNavigate.bind(this)} state={this.props}/>
    )
  }

    <NavigationCardStack
      renderScene={this._renderScene}
      ...
    />

解决方法

this issue可以相关吗?看起来类似的是,即使redux状态发生变化,NavigationCardStack也不会更新,而redux-logger会记录更改.我无法从您的代码示例中判断出来,但是测试它的一种方法可能是将子项或一个子项直接连接到您的redux商店,而不是让NavigationCardStack将商店状态作为道具传递?上面的github问题也有一些hacky解决方法,但我对反应原生不是很熟悉,所以我在那里帮不了多少.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...