#javascript #reactjs
Вопрос:
Проблема в том, что я не знаю, как печатать данные Json с помощью React.
JSON :
{ "themes": [ { "id": 1, "name": "nature", "trips": [ { "id": 1, "location": "Jeju", "price_discounted": 11200 }, { "id": 2, "location": "Seoul", "price_discounted": 11200 }, ] } ] }
и я попытался
function Card() { const [users, setUsers] = useState([]); const fetchUsers = async () =gt; { const response = await axios.get(process.env.REACT_APP_PRODUCT_URL); setUsers(response.data.themes); console.log(response.data); }; useEffect(() =gt; { fetchUsers(); }, []); return ( lt;divgt; {users.map((user) =gt; ( lt;ligt;{user.name.trips}lt;/ligt; ))} lt;/divgt; ); }
но я не могу получить данные о «поездках».. Помоги мне!
Я могу получить только «идентификатор»и «имя» «темы»».
Комментарии:
1. какие данные вы хотите включить в свой список
Ответ №1:
Вы написали user.name.trips
, что это неверно. Вот, trips
не является ребенком name
. Чтобы получить поездку, вам нужно написать:
user.trips[0].id
или user.trips[1].price_discounted
или …
Индекс в скобках необходим, потому trips
что здесь есть массив. Кроме того, каждая поездка является объектом, поэтому вам нужно указать, какую пару «ключ/значение» вы хотите вывести.
Общий код таков:
user.trips[(index of trip)].(id or location or price_discounted)
Ответ №2:
В вашем json вы неправильно используете переменную. имя-это строка. поездки-это объект. и то, и другое-разные реквизиты.
{users.map((user) =gt; { return user.trips(trip=gt;{ return lt;ligt;{trip.location}lt;/ligt; } } )}