我正在使用react-select并将其从组件传递到钩子。我希望它会更舒适。
将待办事项添加到associatedTodos时,出现此错误:
TypeError:Object(...)不是函数
我正在使用react-select,代替componentDidMount,我正在使用useEffect,并使用useDispatch进行操作,对于onChange中的选定值和setValue,我正在使用useState。
这是我的代码:
import React, {
useState,
useEffect,
useDispatch
} from 'react';
import Select from 'react-select';
import "./styles.css";
import {
searchTodos
} from '../../actions/ServiceActions';
const SelectInput = ({
label,
input,
width,
placeholder,
meta: {
touched,
error
},
...rest
}) => {
const [todo, setTodo] = useState();
const dispatch = useDispatch();
useEffect(() => {
dispatch(this.props.searchTodos());
}, [])
return ( <
div className = 'form-container' >
<
label forname = {
input.name
} > {
label
} < /label> <br / >
<
Select {
...rest
}
placeholder = {
!input.value ? 'please, select a todo' : input.value
}
selected = {
input.value ? input.value : null
}
onBlur = {
input.onBlur
}
value = {
tarea
}
onChange = {
setTodo
}
options = {
dispatch(this.props.searchTodos())
}
className = 'form-control' /
>
<
div className = 'text-danger'
style = {
{
marginBottom: '20px'
}
} > {
touched && error
} <
/div> <
/div>
);
};
export default SelectInput;
我想知道替代连接的方法是什么。 Connect方法仅用于类组件。哪种等效的连接方法可用于功能组件使用React挂钩从reducer todo获取所有待办事项。
您可以通过Using react-select I've got next issue: Cannot read property 'value' of undefined
进行指导解释如何使用todoList作为reducer和hooks,使用钩子选择确定的todo并更改值。
我想要的是通过todoList reducer搜索确定的待办事项,选择确定的待办事项,在下拉列表中更改todo值(选择组件),然后使用钩子通过操作“ searchTodos”获取todoList。