Typescript: свойство "title" не существует для типа 'never' - PullRequest
1 голос
/ 29 апреля 2020

Я практикую машинный текст на React. Я получил данные из jsonplaceholer API и добавил в состояние моего компонента. После сопоставления состояния и попробуйте сделать на моем мобильном телефоне. Но я получаю сообщение об ошибке на моем терминале: property "title" does not exist on type 'never'.

Это мой компонент приложения

import React, { useState, useEffect } from "react";
import { StyleSheet, Text, View, ScrollView, Image } from "react-native";

export default function App() {
  const [state, setstate] = useState([]);

  useEffect(() => {
    fetchData();
  }, []);

  const fetchData = async () => {
    const response = await fetch("https://jsonplaceholder.typicode.com/photos");
    const data = await response.json();
    setstate(data);
  };

  return (
    <ScrollView style={styles.body}>
      <View style={styles.container}>
        {state.map(list => {
          return <Text>{list.title}</Text>; //
        })}
      </View>
    </ScrollView>
  );
}

const styles = StyleSheet.create({
  body: {
    padding: 150
  },
  container: {
    flex: 1,
    backgroundColor: "white",
    alignItems: "center",
    justifyContent: "center"
  },

  stretch: {
    width: 50,
    height: 200,
    resizeMode: "stretch"
  }
});

1 Ответ

1 голос
/ 29 апреля 2020

Вы должны определить свое состояние как массив типа any :

const [state, setstate] = useState([] as any[]);

По умолчанию TypeScript определяет пустые массивы как never[]. Это массив, который всегда будет пустым. Странная вещь TS. Больше информации в этом вопросе .

...