React本机Redux对象映射在firebase的动态数据上创建副本

React本机Redux对象映射在firebase的动态数据上创建副本,firebase,react-native,redux-thunk,Firebase,React Native,Redux Thunk,我目前有一个列表,它总是使用“on”监听firebase数据库 除了向数据库中添加新数据外,一切似乎都正常。除非进行刷新,否则数据库中的数据似乎会重复 My action.js: export const getAllEvents = () => { var a =[] return (dispatch) => { dispatch(fetchingStart()); var ref = firebase.database

我目前有一个列表,它总是使用“on”监听firebase数据库

除了向数据库中添加新数据外,一切似乎都正常。除非进行刷新,否则数据库中的数据似乎会重复

My action.js:

export const getAllEvents = () => {
    var a =[]
      return (dispatch) => {
        dispatch(fetchingStart());

            var ref = firebase.database().ref('Events/');
            ref.orderByChild("epochTime").on("value", function(snapshot) {

                snapshot.forEach(child => {
                    a.push(child.val())
                })
                console.log("Array dispatch ", a)
                dispatch(fetchingSuccess(a))


              });


      }
  }
我的减速机:

const INITIAL_STATE = {
    arr: [],
    isFetching: false,

}

const eventListReducer = (state = INITIAL_STATE, action) => {
    switch (action.type) {
        case FETCH_BEGIN:
            console.log("begining fetch")
          return { ...state, isFetching: true };
        case FETCH_SUCCESS:
          return { ...state, isFetching: false, arr: action.payload };
        default:
          return state;
      }
}

export default eventListReducer;
我的渲染:

var obj = this.props.eventListReducer;

     {obj.map((request,i) => (
                                <TouchableOpacity activeOpacity={0.8} key={i} onPress={() => this.props.navigation.navigate('Event', {
                                    spots: request.availableSpots,
                                    date: request.date,
                                    puckdrop: request.time,
                                    level: request.level,
                                    organizer: request.scheduler,
                                    uuid: request.uuid,

                                })

                            }>
<Text.........
var obj=this.props.eventListReducer;
{obj.map((请求,i)=>(
this.props.navigation.navigate('Event'{
地点:request.availablespot,
日期:request.date,
puckdrop:request.time,
级别:request.level,
组织者:request.scheduler,
uuid:request.uuid,
})
}>

你的控制台上有重复的键警告吗?我以前也有,但后来我添加了{I}键。我用一些传统信息编辑了我的问题