Javascript React Native TypeError undefined不是函数(靠近';…data.map…';)
我试图将firebase中的react native中的数据加载到表中,但一直出现此错误。它适用于任何二维数组,但当我从firebase加载二维数组时,会出现错误Javascript React Native TypeError undefined不是函数(靠近';…data.map…';),javascript,reactjs,react-native,google-cloud-firestore,Javascript,Reactjs,React Native,Google Cloud Firestore,我试图将firebase中的react native中的数据加载到表中,但一直出现此错误。它适用于任何二维数组,但当我从firebase加载二维数组时,会出现错误 async function get_passwords(user) { const check_user = db.collection("users").doc(user); const doc = await check_user.get(); const entries = Object.e
async function get_passwords(user) {
const check_user = db.collection("users").doc(user);
const doc = await check_user.get();
const entries = Object.entries(doc.data());
return entries;
}
function InfoScreen({ navigation, route }) {
const { param1, param2 } = route.params;
const stated = {
tableHead: ["Info", "Password"],
tableData: [
["1", "2"],
["a", "b"],
["1", "2"],
["a", "b"],
],
};
let entries = get_passwords(param1);
return (
<View>
<Table>
<Row data={stated.tableHead} />
<Rows data={entries} />
</Table>
</View>
);
}
异步函数获取密码(用户){
const check_user=db.collection(“用户”).doc(用户);
const doc=wait check_user.get();
const entries=Object.entries(doc.data());
返回条目;
}
功能信息屏幕({导航,路线}){
const{param1,param2}=route.params;
常量声明={
表头:[“信息”,“密码”],
表格数据:[
["1", "2"],
[“a”、“b”],
["1", "2"],
[“a”、“b”],
],
};
let entries=get_密码(参数1);
返回(
);
}
由于get\u passwords是一个异步函数,因此需要使用“await”来调用函数,如
let entries=等待获取密码(param1)代码>
使用useState和useffect
条目开始时将未定义,因为获取它们是异步的。您是否在Rows
组件中管理了此问题?Rows组件是从react本机表组件导入的,因此没有。您知道我将如何重写此组件以修复它吗?它说我只能在异步函数中使用wait,当我将InfoScreen更改为async时,它说对象作为react子对象无效。是的。因此,在我的例子中,我使用useState和useEffect一起获得用于渲染的数据,如上图所示。
const [entries, setEntries] = useState([]);
useEffect(() => {
getEntries(param1);
}, [param1]);
const getEntries = async (param) => {
const passwords = await get_passwords(param);
setEntries(passwords);
}