通过为Redux中的每个ListItem创建ID来检索详细信息

时间:2018-06-22 15:22:37

标签: reactjs react-native redux redux-thunk react-native-flatlist

我对Redux比较陌生,一直在阅读文档,但是我处于停滞状态。

我的应用程序包括获取API数据并使用FlatList显示它,我已经使用Redux成功完成了此操作。但是,我想选择ListItem,导航到新屏幕并显示项目详细信息。

以前,我尝试使用导航进行以下操作:

onPress={ () => this.props.navigation.navigate("DeliveryDetails", { 
       title: `${item.Title} ${item.FirstName} ${item.LastName}`,
       address: `${item.Primary_DeliveryStreet1},
       packages: `${item.Package}` //This is an array inside of 'item' })}

我能够在新的详细信息页面上通过const {params} = this.props.navigation.state; 检索所有数据,除了。.如上所述传递的任何数组都将记录为[],其中没有数据。当然,传递${item.Package[0]}仅适用于1个元素。

问题:

我如何使用Redux为每个FlatList ListItem分配一个ID,以检索我需要的数据,而无需通过this.props.navigation.navigate传递数据的方法?相反,将不胜感激任何其他解决方案。

异径管:

    import { FETCH_CUSTOMERS} from '../actions/types';

const initialState = {
    items: [],
    item: {} // a bit confused on implementing this
};

export default function (state = initialState, action) {
    switch (action.type) {
        case FETCH_CUSTOMERS:
            return {
                ...state,
                items: action.payload,
            };
        default:
            return state;
    }
}

操作:

 import {FETCH_CUSTOMERS} from './types';

export const fetchCustomerDetails = () => async  dispatch  => {

  await fetch('http://xxxxx/xxxxx/xxxxxx.php')
  .then(res => res.json())
  .then(data => dispatch({
      type: FETCH_CUSTOMERS,
      payload: data    
 }))
}

0 个答案:

没有答案