Я получаю ответ от конечной точки, который выглядит следующим образом:
[[{"1":"91"}],[{"1":"1"}],[{"1":"0"}],[{"1":"0"}],[{"1":"0"}],[{"1":"0"}],[{"1":"0"}],[{"1":"0"}]]
Я извлек их и получаю результаты, но не могу их отобразить. Это то, что я пытался:
render() {
const {count} = this.state;
return (
<div>
{count.count && count.count.map(item => (
item.value.map(data => (
data.value.map(x => (
<p>{x.value}</p>
))
))
))}
</div>
)
}
Я ожидаю, что на выходе будут все числа, указанные в ответе json. Бывший. 91 1 0 0 0 и т. д.
Я не уверен, что происходит. Вы показываете один объект, а обрабатываете его как совершенно другой. Вы используете 3 map
, в то время как у вас есть 2 уровня в объекте. Кроме того, откуда взялась value
поддержка? В объекте нет value
. И вы ожидаете, что результат будет содержать 94..
, но у вас нет 94
в объекте. Откуда count
? и т.п.
Есть ли какая-либо ошибка, которую вы получаете?
@DaniVijay Нет, я не получаю никаких ошибок.
@Ashish state = { count: {} };
Возможно, вы могли бы попытаться воспроизвести проблему с помощью таких инструментов, как stackblitz.com/fork/реакция. Так нам будет намного проще вам помочь..
Прежде всего, структура массива, который вы пытаетесь повторить, похожа на массив массивов с объектами внутри. Итак, сначала начните итерировать первый и второй массивы, а затем итерируйте объект внутри. Object.keys
можно использовать для этого.
Вы можете получить к нему доступ следующим образом:
...
<div>
{count &&
count.length > 0 &&
count.map(
item =>
item.length > 0 &&
item.map(
el =>
Object.keys(el).length > 0 &&
Object.keys(el).map(val => <p>{el[val]}</p>)
)
)}
</div>
...
Пожалуйста, поделитесь своим состоянием. Это как count: {count: [[{"1":"91"}],[{"1":"1"}],[{"1":"0"}],[{"1":"0"}],[{"1":"0"}],[{"1":"0"}],[{"1":"0"}],[{"1":"0"}]]}
, верно?
count: Array[8] 0: Array[1] 0: {…} 1: "91"
Затем напрямую повторите count
вместо count.count
. Я отредактировал ответ. См. codeandbox тоже.
count
пусто или нет.
пожалуйста, предоставьте свой образец
this.state.count