【问题标题】:React Native - trying to extract the data and store in a variableReact Native - 尝试提取数据并存储在变量中
【发布时间】:2021-09-10 06:00:39
【问题描述】:

enter image description here我是 react-native 的新手。我试图使用 fetch 访问 API。我能够在控制台上打印结果,但无法在移动屏幕上打印。我附上了下面练习代码的截图。 [在此处输入图片描述][2]

import React from 'react'
import { StyleSheet, Text, SafeAreaView} from 'react-native'

const getMoviesFromApi = () => {
  //GET request
  fetch('https://reactnative.dev/movies.json', {
    method: 'GET',
    //Request Type
    //method: 'POST',
  })
    .then((response) => response.json())
    //If response is in json then in success
    .then((responseJson) => {
      //Success
     // alert(JSON.stringify(responseJson));
      //console.log(responseJson);
      return responseJson;
    })
}

const App = () => {
    let data = getMoviesFromApi()
    console.log(data)

     return (

        <SafeAreaView>
          <Text> JSON.stringify{data} </Text>

          {/* <Text> JSON.stringify{parseData} </Text> */}
        </SafeAreaView>
     )
}

const styles = StyleSheet.create({})

export default App

【问题讨论】:

    标签: javascript reactjs react-native


    【解决方案1】:

    您想使用useState 并将您从 api 接收的数据保存在状态中,并使用useEffect 在状态更新时获取数据,UI 也会如此

    所以我会使用这样的东西:

    import { useState, useEffect } from 'react';
    
    const App = () => {
      const [movies, setMovies] = useState([]);
    
      useEffect(() => {
        const fetchMovies = async () => {
          const data = await getMoviesFromApi();
          setMovies(data); // I supose it's an array of movies
        }
      }, [getMoviesFromApi])
    
      return (...);
    }
    

    【讨论】:

    • 感谢您提供的信息。所以,我在返回函数中做了 JSON.stringify{data} ,它抛出了一个错误。所以,我想知道我做错了什么?
    • 如果你console.log(data)你有什么结构?
    • 在任何情况下,您都想映射您的数组并输出您想要的 JSX。例如:return (&lt;&gt;movies.map(movie =&gt; (&lt;Text&gt;movie.name&lt;/Text&gt;))&lt;/&gt;)
    猜你喜欢
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 2020-02-23
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多