React native 错误:对象作为React native中的React子对象无效
我正在用react native开发一个应用程序,我有一个名为“用户”的数组React native 错误:对象作为React native中的React子对象无效,react-native,React Native,我正在用react native开发一个应用程序,我有一个名为“用户”的数组 Array [ Object { "occurrences": 42, "username": "teste0", }, Object { "occurrences": 1, "username": "teste2", }, Object {
Array [
Object {
"occurrences": 42,
"username": "teste0",
},
Object {
"occurrences": 1,
"username": "teste2",
},
Object {
"occurrences": 5,
"username": "teste1",
},
Object {
"occurrences": 0,
"username": "teste 3",
},
]
当我尝试将每个用户名放在一个单独的视图中时
async function setUsersView() {
let users;
try {
users = await listUserOcurrences(token);
} catch (e) {
console.log(e);
}
return users?.map((user) => {
return (
<View style={styles.userView}>
<Text style={{ fontSize: 20 }}>
{"\n"} {users.username}
</Text>
</View>
);
});
}
异步函数setUsersView(){
让用户;
试一试{
users=等待列表userocurrences(令牌);
}捕获(e){
控制台日志(e);
}
返回用户?.map((用户)=>{
返回(
{“\n”}{users.username}
);
});
}
我得到以下错误:对象作为React子对象无效。这里的username应该是user.username,map的回调使用参数user not users,这是因为
setUsersView()
是async
函数,对渲染无效。函数应该是纯函数,以呈现某些视图。所以你可以这样做:
首先创建一个单状态变量以检查是否提取了用户,例如:
const[isLoadingUsers,setLoadingUserStatus]=useState(false);//功能部件
//类组件
此.state={
isLoadingUsers:false
}
现在,当您开始抓取用户时,将其状态切换为true,并根据其值呈现视图。例如,如果用户正在提取,则可以呈现ActivityIndicator
或某个占位符,提取完成后显示用户
函数setUsersView(){
setLoadingUserStatus(真);
让用户;
试一试{
users=等待列表userocurrences(令牌);
setLoadingUserStatus(假);
}捕获(e){
控制台日志(e);
}
if(isLoadingUsers){
返回(
)
}
返回用户?.map((用户)=>{
返回(
{“\n”}{users.username}
);
});
}
现在,这是一个简单的函数,错误将消失。明白了。还有一个问题,我没有使用类。如果我使用你上面使用的类组件,有什么问题吗?如果你想使用类组件,那么你必须使用
this.setState({isLoadingUsers:true})
来修改状态,而不是setLoadingUserStatus(true)代码>。