Почему мои данные не отображаются в таблице в react

#reactjs

#reactjs

Вопрос:

Кто-нибудь знает, почему мои данные не отображаются, это консоль.регистрирует ‘x [0]’, ‘x [1]’, ‘x [2]’ и ‘x[3]’ нормально в моем операторе return. Я довольно новичок в react и программировании в целом, поэтому понятия не имею, почему это не работает.

Я бы просто ожидал, что он заполнит строки таблицы, подобные 2, которые я закодировал вручную.

 import React, { useState, useEffect } from 'react'
import "./stylesheets/oddsmatcher-table.css"


const App = () => {
    const [wow, setWow] = useState([])
    
    useEffect(() => {
        fetch(DATA)    
            .then(res => res.json())
            .then(data => {
                const newData = data.data.slice(0, 10)
                
                const k = newData.map(x => {
                    return [x.date, x.event_name, x.bookmaker_name, x.exchange]
                })
    
                setWow(k)
                console.log(k)
            })
    }, [])
    
    
    return(
        <table>
            <tbody>
                <tr>
                    <th>Date</th>
                    <th>Event</th>
                    <th>Bookie</th>
                    <th>Exchange</th>
                </tr>
                <tr>
                    <td>25-09-2020</td>
                    <td>Man United vs Liverpool</td>
                    <td>Bet365</td>
                    <td>Smarkets</td>
                </tr>
                <tr>
                    <td>26-09-2020</td>
                    <td>Arsenal vs Man City</td>
                    <td>Coral</td>
                    <td>Betfair Exchange</td>
                </tr>
                {wow.forEach(x => {
                    return(
                        <tr>
                            <td>{x[0]}</td>
                            <td>{x[1]}</td>
                            <td>{x[2]}</td>
                            <td>{x[3]}</td>
                        </tr>
                    )
                })}
            </tbody>
        </table>
    )
}

export default App
  

Ответ №1:

Обновление: попробуйте переключиться wow.forEach на это:

 {wow.map((x, index) => {
  return (
    <tr key={index}>
      {x.map((dataPiece) => (
        <td key={dataPiece}>{dataPiece}</td>
      ))}
    </tr>
  );
})}
  

Вот Codesandbox, который я использовал для тестирования. Я заменил вашу асинхронную выборку глобальной переменной на то, как, по моему мнению wow , выглядят ваши данные:
https://codesandbox.io/s/suspicious-glitter-mf0tg ?fontsize = 14amp; hidenavigation = 1amp;theme = темный

Дайте мне знать, если это сработает. Если это не так, можете ли вы опубликовать пример того, как выглядят ваши извлеченные данные?