我不知道為什么我不能讓它作業,但我只想從串列中編輯待辦事項并保存它onBlur(當我在框外按下時)。我以前做過這項作業,但我想我得了大腦凍結之類的。我洗掉了我的嘗試,所以現在這些功能是空的。有人可以將我推向正確的方向或只是填補空白嗎?謝謝
更新:所以我想按下我添加到串列中的待辦事項(文本輸入),然后編輯已經存在的待辦事項,然后再次將其保存到串列中!
const TEST = () => {
const [todo, setTodo] = useState("")
const [todoList, setTodoList] = useState([])
const onChangeHandler = (text) =>{
setTodo(text)
}
const saveTodo = () =>{
setTodoList([...todoList , {title: todo, key:`${Math.random()}`}])
setTodo("")
}
const onChangeTodo = () =>{
//UPDATE HERE
}
const saveonChangeTodo = () =>{
//SAVE HERE
}
return(
<View style={{flex:1, backgroundColor: "beige", justifyContent: "center", alignItems: "center", paddingTop: 300,}}>
<TextInput
placeholder="Write todo here"
style={{backgroundColor:"white", padding: 20, width: 300,}}
value={todo}
onChangeText={text=>onChangeHandler(text)}
onBlur={saveTodo}
/>
<FlatList
data={todoList}
renderItem={({item}) => {
return(<TextInput style={{borderColor: "black", borderWidth: 2, width: 200, padding: 20, margin: 10}}
value={item.title}
onChangeText={text=>onChangeTodo(text, item)}
onBlur={saveonChangeTodo}
/>
)
}}/>
uj5u.com熱心網友回復:
改變你onChangeTodo的如下。不需要,saveonChangeTodo因為它已經被onChangeTodo.
const onChangeTodo = (text, item) => {
setTodoList((todos) =>
todos.map((todo) =>
todo.key === item.key ? { ...todo, title: text } : todo
)
);
};
代碼沙箱
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/417644.html
標籤:
