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
添加回答
举报