Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
257 views
in Technique[技术] by (71.8m points)

javascript - Can't fetch data FROM API and insert into FlatList

Trying to fethch data and insert to Flatlist , can someone show my mistake, tried almost everything, Tried to make like in Official Docs, but didn't help:

const [isLoading, setLoading] = useState(true);
  const [data, setData] = useState([]);
  
    useEffect(() => {
      fetch('https://app.sm117.ru/api/v1/contract/news/'),{
        method: "GET",
        headers: {"Content-type": "application/json; charset=UTF-8"}}

        .then((response) => response.json())
        .then((json) => setData(json. ???  ))//what can i put here , cause i my Json doesnt have title
        .catch((error) => console.error(error))
        .finally(() => setLoading(false));
      }, []);
  
    return (
      <View style={{ flex: 1, padding: 24 }}>
        {isLoading ? <ActivityIndicator/> : (
          <FlatList
            data={data}
            keyExtractor={({ id }, index) => id}
            renderItem={({ item }) => (
              <Text>{item.id}, {item.title}</Text>
            )}
          />
        )}
      </View>
    );
  };
question from:https://stackoverflow.com/questions/65938548/cant-fetch-data-from-api-and-insert-into-flatlist

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You have to pass nothing because your response already contains all the list.

.then((json) => setData(json))

If u will print the data or response you will get to know the better. Put console , things will be more clearer.

Let us consider this example.If you will consider this request.

https://reactnative.dev/movies.json

Here you have to put the json.movies to get all the list.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...