2 回答

TA貢獻1811條經驗 獲得超4個贊
代碼中幾乎沒有更改。
在 import 語句中刪除 AddTask 和 TaskList 周圍的大括號
import AddTask from './src/screens/AddTask';
import TaskList from './src/screens/TaskList';
在 import 語句中將 Flatlist 更改為 FlatList
import {View, StyleSheet, FlatList, Alert} from 'react-native';
并更改退貨聲明。然后將 renderItem 中的變量從任務更新為項目,將項目更新為任務,如下所示
<FlatList data={tasks}
renderItem={({item}) => (
<TaskList task={item} deleteTask={deleteTask} />
)}
/>
完整代碼如下
import React, {useState} from 'react';
import {View, StyleSheet, FlatList, Alert, Text} from 'react-native';
import 'react-native-get-random-values';
import {v4 as uuidv4} from 'uuid';
import AddTask from './src/screens/AddTask';
import TaskList from './src/screens/TaskList';
const App = () => {
const [tasks, setTasks] = useState([{id: uuidv4(), text: 'Task 1'}]);
const deleteTask = (id) => {
setTasks((prevTasks) => {
return prevTasks.filter((task) => task.id != id);
});
};
const addTask = (text) => {
if (!text) {
Alert.alert('Error', 'Please enter a task', {text: 'Ok'});
} else {
setTasks((prevTask) => {
return [{id: uuidv4(), text}, ...prevTask];
});
}
};
return (
<View style={styles.container}>
<AddTask addTask={addTask} />
<FlatList
data={tasks}
renderItem={({item}) => (
<TaskList task={item} deleteTask={deleteTask} />
)}
/>
)}
/>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
paddingTop: 10,
},
});
export default App;
我已經從 github 上獲取了你的代碼并更新了代碼。你可以在這里查看 https://snack.expo.io/FbOC0J!MM
添加回答
舉報