Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法呈现平面列表_Javascript_React Native_React Native Flatlist - Fatal编程技术网

Javascript 无法呈现平面列表

Javascript 无法呈现平面列表,javascript,react-native,react-native-flatlist,Javascript,React Native,React Native Flatlist,我正在尝试渲染平面列表,但在屏幕上看不到它 我通过控制台日志获取减速器的数据,并在控制台中获取正确的数据: User { "apellido": "Alas", "correo": "prueba@uno.com", "id": 2021-02-08T23:52:58.855Z, "nombre": "Rene", "telef

我正在尝试渲染平面列表,但在屏幕上看不到它

我通过控制台日志获取减速器的数据,并在控制台中获取正确的数据:

User {
  "apellido": "Alas",
  "correo": "prueba@uno.com",
  "id": 2021-02-08T23:52:58.855Z,
  "nombre": "Rene",
  "telefono": "72457183",
}
这是我的密码:

import React from "react";
import { View, Text, FlatList, StyleSheet } from "react-native";
import { useSelector } from 'react-redux';

import UserItem from "../components/UserItem";

export default function Page2() {
    const users = useSelector(state => state.registro.availableUsers);

    console.log(users);

    if (users.length === 0) {
        return <View style={styles.centered} >
            <Text>No Existen Usuarios</Text>
        </View>
    }

    return (
        <FlatList
        data={users}
        keyExtractor={item => item.id.toString()}
        renderItem={
            itemData => <UserItem
                nombre={itemData.item.nombre}
                apellido={itemData.item.apellido}
                telefono={itemData.item.telefono}
                coreo={itemData.item.coreo}
                onSelect={() => { }}
            />
        }
    />
    )
};

const styles = StyleSheet.create({
    container: {
        backgroundColor: '#f9fafd',
        flex: 1,
        justifyContent: 'center',
        alignItems: 'center',
        padding: 20,
    }
});
减速器


您的可用用户只是获得一个用户,而不是更新/追加新用户

export default (state = initialState, action) => {
    switch (action.type) {
        case REGISTER:
            return {
                ...state,
                availableUsers: [...state.availableUsers, action.user],
            };
    }
    return state;
};

通过扩展(…)
state.availableUsers
,您可以将新用户附加到现有阵列的末尾。

FYI该ID仅为日期()函数as just needed一个ID您在第一个控制台中发布的日志示例只是一个用户--您确定这是一个用户数组吗?我刚刚测试了一个用户,但它是一个ArrayKay--只是问一下,因为您的
TypeError
表明不同--映射将在非数组的对象上未定义。我明白您的意思,我想这可能是我的操作或Reducer:它现在起作用了,这可能太多了,但是如果我需要删除Reducer中的其中一个项目,有什么想法吗?你的意思是删除一个用户吗?是的,我需要通过idSomething(如
availableUsers:state.availableUsers.filter)删除availableUsers数组中的ond用户(item=>item.id!==action.id)
(我正在假设
User
是如何构造的,以及
action
是如何定义的)。
import { REGISTER } from '../actions/registro';

const initialState = {
    availableUsers: [],
}

export default (state = initialState, action) => {
    switch (action.type) {
        case REGISTER:
            return {
                ...state,
                availableUsers: action.user,
            };
    }
    return state;
};
export default (state = initialState, action) => {
    switch (action.type) {
        case REGISTER:
            return {
                ...state,
                availableUsers: [...state.availableUsers, action.user],
            };
    }
    return state;
};