#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>
)}
/>