Показать вложенный Json массив извлеченных данных React native - PullRequest
1 голос
/ 27 марта 2020

Так что я новичок, чтобы реагировать на нативные, и я пытаюсь отобразить вложенные элементы Json извлеченных данных, но я не могу понять, как это сделать. После использования реакционных хуков в api fetch:

export default function MedProfilScreen({ route }) {
  //const {id,name,specialite,work}=route.params;
  const [data, setData] = useState([]);
  useEffect(() => {
    fetch("http:......")
      .then(response => response.json())
      .then(res => {
        setData(
          res);
        console.log(res);
      })
      .done();
  },[]);
}

я получил этот ответ:

Array [
  Object {
    "code": "12459552",
    "id": 7,
    "name": "Dr xavier vilan",
    "speciality": "Cardio",
  },
  Object {
    "education": Array [
      Object {
        "date_debut": "2020-02-07",
        "date_end": "2020-02-06",
        "diploma": "asmaa",
        "school": "asmaa",
        "city": "vullez",
      },
      ]}
]

, поэтому я хочу отобразить, например: name: Dr xavier .. diploma: asmaa

return(
<View>  name: Dr xavier.. diploma: asmaa            </View>
)

у всех есть идеи, как это сделать, пожалуйста. Спасибо

Ответы [ 4 ]

1 голос
/ 27 марта 2020

Я не знаю, это то, что вы ищете, но я попробую:

Код:

const renderText = () => {
    // as soon as we received the data, we will display it
    if (data.length > 0){
      return (
         <Text> name: {data[0].name} diploma: {data[1].education[0].diploma}</Text>
      )
    }
}
return (
  <View>
     {renderText()}
  </View>
);

Вывод:

output

Демо:

https://snack.expo.io/rkbsDdoU8

1 голос
/ 27 марта 2020

Поскольку вы уже сохранили свой ответ внутри data, ваши данные должны выглядеть так:

data = [
  {
    code: "12459552",
    id: 7,
    name: "Dr xavier vilan",
    speciality: "Cardio"
  },
  {
    education: [
      {
        date_debut: "2020-02-07",
        date_end: "2020-02-06",
        diploma: "asmaa",
        school: "asmaa",
        city: "vullez"
      }
    ]
  }
]

Теперь вы можете получить доступ к name & diploma, как показано ниже,

name: data[0].name
diploma: data[1].education[0].diploma

Надеюсь, это поможет вам. Не стесняйтесь сомнений

0 голосов
/ 27 марта 2020

Попробуйте это, ссылаясь на предметы, которые вы хотите

return(
     <View>  
          <Text> name: {data[0].name} diploma: {data[1].education[0].diploma}         
           </Text>
     </View>
)
0 голосов
/ 27 марта 2020

попробуйте это:

return (
   <View>{JSON.stringify(data, null, 2)}</View>
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...