почему строка рендеринга списка разделов в одной строке реагирует на родной язык

#react-native #react-native-sectionlist

Вопрос:

Я создаю группу по запросу в react native с помощью функции reduce, затем я создаю список разделов для отображения данных, но у меня есть некоторые проблемы. Мой код

 <View>
  <SectionList
    renderSectionHeader={({ section: { title} }) => (
      <Text style={{ fontWeight: 'bold' }}>{title}</Text>
    )}
    sections={this.state.dataSource}
    renderItem={({item, index, section}) => <Text key={index}>{section.data}</Text>}
    keyExtractor={(item, index) => item   index}
  />
</View>

const dataSource = responseJson.old_cases.reduce(function (sections, item) {
    let section = sections.find(section => section.gender === item.gender);
    
    if (!section) {
        section = { gender: item.gender,data:[] };
        sections.push(section);
    }
    
    section.data.push(item.name)
    return sections;
}, []);

this.setState({dataSource: dataSource // Pass the dataSource that we've processed above}); 
 

но мой результат таков

 title //header
name_1,name2
name_1,name2
title2 //header
name_3
 

Вывод, который я хочу

 title //header
name_1
name2
title2 //header
name_3
 

Я просто хочу показать одно имя в строке против каждого заголовка, но, согласно моему коду, рендеринг работает нормально, потому что у первого заголовка две записи, поэтому он отображается дважды, но оба имени дважды находятся в одной строке

Ответ №1:

Вы визуализируете все данные в своем разделе одновременно, вам нужно визуализировать только один элемент одновременно.

В вашем списке квартир:

 renderItem={({item, index, section}) => <Text key={index}>{item}</Text>}
 

Комментарии:

1. что мне делать, если мне нужно сделать больше, чем что-то еще, а затем назвать

2. если ваши структуры данных похожи на [{имя: «название», возраст: 34}], просто используйте свойство как стандартный объект {item.age}