【发布时间】:2020-07-25 17:01:51
【问题描述】:
我正在尝试做一个基本的待办事项列表,但是当我在按下 add 后调度一个动作时它不会调度。
我已经从每个函数中取出 dispatch(todo(todoList))out 并将其留在主 ToDo 组件中,以便对输入到搜索框中的每个字母进行多次调用,我可以在 @987654323 的 redux 存储中看到更新@ 所以我知道我的todo 有效,但是当我尝试提交时它不会dispatch()。请有人帮助我。
这是我的代码:
import {useDispatch } from 'react-redux'
import { todo } from './action/todo'
const ToDo = () => {
const [todo, setTodo] = useState('')
const [todoList, setTodoList] = useState([])
const dispatch = useDispatch()
const handleSubmit = (id , todo) => {
const newTodoList = todoList.concat({ id: id, val: todo })
return (
setTodo(''),
todo.length === 0
? <Text/>
: setTodoList(newTodoList) // if I put the dispatch here it doesn't work either
)
}
return (
<View style={styles.addPhotoCont}>
<TextInput
placeholder={props.textInputPlaceholder}
onChangeText={props => setTodo(props)}
value={todo}
/>
<TouchableOpacity
onPress={() => handleSubmit(Date.now(), todo) && dispatch(todo(todoList))}>
<Text style={styles.addButton}>Add</Text>
</TouchableOpacity>
</View>
)
}
【问题讨论】:
-
问题在于您的 handleSubmit 函数您试图返回一些没有意义的东西,删除返回并执行提交逻辑,您无法从 handleSubmit (或任何事件)返回组件听众)
-
谢谢,如果我删除退货,它应该可以工作吗?
-
是的,它应该可以工作,
标签: javascript react-native react-hooks