与存储中的数据解除同步以响应redux

时间:2019-08-20 13:14:45

标签: react-native react-redux

我有一个带有可点击组件的清单。单击这些组件后,我将分派addPhotoToQueue。然后,我点击“ flatlist”中的“ _addPhoto”。假设我计算这些可点击组件被点击了多少次。分派后立即我console.log数据。第一次点击的值为:0(应为1),第二次点击的值为:1(应为2),依此类推。我想念什么?

这是我在FlatList中的图像组件

function mapDispatchToProps(dispatch) {
  return {
    addPhotoToQueue: (uri) => {
      dispatch(addPhotoToQueue(uri))
    },
  };
}

function mapStateToProps(state) {
  return {
    queuedPhotos: state.photo.queuedPhotos,
  }
}

class FlatListImage extends React.PureComponent {
  _addPhoto = () => {
    this.props.addPhotoToQueue()
    console.log('how many times I clicked: ', this.props.queuedPhotos)
}

这是我的减速器

const initialState = {
  queuedPhotos: 0,
};

const PhotoReducer = (state = initialState, action) => {
  switch (action.type) {
    case ADD_PHOTO_TO_QUEUE:
        return {
          ...state,
          queuedPhotos: state.queuedPhotos + 1
        }
    default:
      return state;
  }
};

export default PhotoReducer;

我希望console.log在分派后立即为我记录正确的值。

0 个答案:

没有答案