при использовании ловушек и реагировать на выбор я получил эту ошибку: TypeError: Object (...) не является функцией - PullRequest
1 голос
/ 02 марта 2020

Я использую реагировать на выбор и перешел от компонента к хукам. Надеюсь, это было удобнее.

Когда я добавляю задачу в asociatedTodos, я получаю эту ошибку:

TypeError: Object (...) не является функцией

Я использую реагирование-выбор, вместо componentDidMount, я использую useEffect, а для переноса действия я использую useDispatch, а для выбранного значения и setValue из onChange я использую 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. Метод Connect служит только для компонента класса. Какой метод, эквивалентный соединению, служит для функционального компонента, чтобы получить все задачи из задачи-редуктора с помощью перехватчиков реагирования.

Вы можете руководствоваться Использование реагирующего выбора У меня следующая проблема: Невозможно прочитать свойство 'значение' of undefined

, чтобы объяснить, как я могу выбрать определенную задачу и изменить значение, используя хуки, используя todoList в качестве редуктора и хуков.

Все, что я хочу, - это поиск определенной задачи в todoList редуктор, выберите определенный todo, измените значение todo в выпадающем меню (выберите компонент) и извлеките todoList через действие «searchTodos» с помощью хуков.

...