#javascript #react-native
#javascript #реагировать — родной
Вопрос:
Я пытаюсь отобразить JSON, показанный по ссылке ниже:
Когда я перебираю его:
renderList(data) {
var num = Math.floor(Math.random() * 2000);
return(
data.map((singleData) => {
return Object.keys(singleData).map((key) => {
return(
<View style={styles.row}>
<Text>{key}- {singleData[key]}</Text>
</View>
)
})
})
)
}
…
row: {
flexDirection: 'row',
height: 60,
borderBottomWidth: 1,
borderColor: 'black',
justifyContent: 'space-between',
alignItems: 'center',
padding: 20
}
…
constructor(props){
super(props);
this.state = {
data: [],
}
}
componentWillMount(){
api.getIsisData().then((response) =>{
this.setState({
data: response.result.data,
key: '',
values: []
})
})
}
Симулятор работает так, как показано на рисунке ниже:
Но я бы хотел отобразить, как показано ниже:
Где я ошибаюсь в цикле?
Комментарии:
1. Что вы имеете в виду, говоря «как форматируется JSON» ?
2. покажите нам пример того, как вы хотите, чтобы мы его отображали
3. @AKADER пример в описании. Спасибо, братан
4. Чтобы получить материал в формате «json», верните коллекцию объектов как есть. Set content-type=»application/json»
5. @celerno я думаю, что я неправильно объяснил. Я бы хотел отобразить этот путь в нижней части описания.
Ответ №1:
Мой ответ
Я только что создал массив ‘rows’ для получения каждой строки каждого объекта и отображения в представлении.
renderList(data) {
var num = Math.floor(Math.random() * 2000);
return(
data.map((singleData) => {
var rows = []
Object.keys(singleData).map((key,index) => {
rows.push(<Text>{key} - {singleData[key]}</Text>)
})
return(
<View style={styles.row}>
{rows}
</View>
)
})
)
}
Ответ №2:
for(var i =0;i < result.data.length;i ) {
for(var key in result.data[i]{
//do somethying with key}
}
}
вы можете добавить его к переменной состояния и поместить все это в форматированный <View>
Комментарии:
1. Как я могу получить переменную в react, используя for , как я использовал с map() или лучше, как я могу добавить ее в переменную состояния?
2. setState будет находиться внутри ‘for’?
3. Вам нужно начать заново. Найдите время, чтобы посмотреть, как работает состояние в React
4. @RaphaelOnofre Помещение setState() внутри цикла for — очень плохая идея. Как и предложил АКАДЕР, найдите время, чтобы прочитать, как работает состояние, а также прочитать о жизненном цикле компонента.
5. @Giorgos у этого приложения есть один экран, на котором он будет смонтирован на componentWillMount(), а затем отображен. Я устанавливаю там состояние. Я обновил описание проблемы с помощью state и componentWillMount() .