javascript - React-native:使用 redux 处理多个元素选择

标签 javascript react-native react-redux

我有 8 <TouchableWithoutFeedback>网格形式的元素。它们使用 map 动态呈现。 this.props.selectCell('rain')}>

<TouchableWithoutFeedback  onPress={()=>this.props.selectCell('rain')}>                             
    <Row  style={[styles.orangish,styles.cell]}>                        
        <Image source={Rain} />
    </Row>
</TouchableWithoutFeedback>

想法是选择一个onPress。

Action

export const selectCell = (cellId) => {
    console.log(cellId);
    return {
        type: 'select_cell',
        payload: cellId
    };
} 

reducer

export default (state= {}, action) => {
  switch(action.type) {
    case 'select_cell': {
      //trying to figure out what to do here


  }
};

1) 如何在 reducer 中切换选择?

2) 如何根据状态渲染新图像?

最佳答案

在reducer状态下有一个selectedCellId属性,设置如下:

export default (state= {}, action) => {
  switch(action.type) {
    case 'select_cell': {
      return {
         ...state,
         selectedCellId: action.payload
     };    
  }
};

另一种方法是将 8 个单元格设置为 selected = false。

const defaultState = {
  cells: [
    { selected: false },
    { selected: false },
    { selected: false },
    { selected: false },
    { selected: false },
    { selected: false },
    { selected: false },
    { selected: false }
  ]
};

然后在reducer中,

export default (state= defaultState, action) => {
  switch(action.type) {
    case 'select_cell': {
      let { cells } = state;
      cells = cells.slice();
      cells[action.payload] = { selected: true };
      return {
         ...state,
         cells
     };    
  }
};

如果您已命名单元格,则将单元格集合设为对象映射而不是数组。

关于javascript - React-native:使用 redux 处理多个元素选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48483809/

相关文章:

javascript - 使用 Apps Script API 的 Chrome 应用

javascript - 返回 Unirest 客户端的 promise

javascript - 如何让 MutationObserver 多次工作?

ios - 切换到另一个应用程序/主屏幕时如何完全关闭 iOS 应用程序(删除它使用的 RAM)

reactjs - React-Redux:操作必须是普通对象。使用自定义中间件进行异步操作

javascript - 模拟 IJSRuntime InvokeVoidAsync

react-native - 无法在 native 树中找到附加 View

javascript - 让我的日期选择器传递他的值(value)时遇到麻烦

javascript - ReactJS - 将对象传递给操作时出错

javascript - 相机 react native 时出现错误 "null is not an object"