Не могу передать реквизиты штата, говорит неопределенный

#javascript #reactjs #react-native #react-hooks

Вопрос:

Я пытался передать данные заметок другому компоненту, но я не знаю, почему там написано «неопределено».

 export default App = () => {
  const [notes, setNotes] = useState([
    { key: 1, value: "Hello there what up", title: "Some Title for this" },
    { key: 2, value: "I want to take notes", title: "another for this one" },
  ]);

  return (
    <View>
      <FlatList
        data={notes}
        renderItem={({ note }) => (
          <View>
            <NoteItem note={note} />
          </View>
        )}
      />
    </View>
  );
};
 
 export default NoteItem = ({ note }) => {
    <Text>{note.title}</Text>
  );
};
 

Ответ №1:

Во-первых, вы предполагаете, что renderItem в Flatlist имеет свойство «примечание» внутри него. Это не так, это называется предмет. Также вы передаете заметки, но пытаетесь разобрать заметку? Это должно быть так:

 export default App = () => {
  const [notes, setNotes] = useState([
    { key: 1, value: "Hello there what up", title: "Some Title for this" },
    { key: 2, value: "I want to take notes", title: "another for this one" },
  ]);

  return (
    <View>
      <FlatList
        data={notes}
        renderItem={({ item }) => (
          <View>
            <NoteItem note={item} />
          </View>
        )}
      />
    </View>
  );
};
 

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

1. дело было не в заметках, я уже исправил это, дело было в предмете. Большое спасибо.

Ответ №2:

Этот синтаксис — ({ note }) — означает, что NoteItem компонент ожидает note , что будет установлена опора с именем; однако вместо этого вы устанавливаете notes опору.

Попробуй это:

 <FlatList
   data={notes}
   renderItem={({ item, index }) => (
     <View key={index}>
       <NoteItem note={item} />
     </View>
   )}
/>