Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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 React Native TypeError undefined不是函数(靠近';…data.map…';)_Javascript_Reactjs_React Native_Google Cloud Firestore - Fatal编程技术网

Javascript React Native TypeError undefined不是函数(靠近';…data.map…';)

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

我试图将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.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);
  }