【发布时间】:2021-11-26 21:53:11
【问题描述】:
我尝试使用 React-native 制作一个待办事项应用程序。这是一个使用 typescript 和 expo 的空白反应原生项目。我在 linux 上。
包含 todo 数组的状态会更新,但视图不会相应地呈现,直到我单击输入按钮并更改文本状态。
我有 3 个函数来修改状态 - textChange(用于更新 todoText 状态)、handleAddTask(用于更新包含任务的数组)、rmTask(从任务数组中删除项目)
const [task, setTask] = useState('');
const [taskItems, setTaskItems] = useState(["Write a task"]);
const textChange = (text: string) => {
setTask(text)
}
const handleAddTask = () => {
taskItems.push(task)
setTaskItems(taskItems)
setTask('')
}
const rmTask = (index: number) => {
taskItems.splice(index, 1);
setTaskItems(taskItems)
}
以及功能影响的组件
taskItems.map((item, index) => {
return (
<TouchableOpacity
key={index}
onPress={()=> rmTask(index)}
>
<Task text={item} />
</TouchableOpacity>)
})
【问题讨论】:
-
您当前没有更新状态值。见Correct modification of state arrays in React.js
标签: javascript reactjs linux react-native