在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} ... />