Как мне получить доступ к this.state при использовании хука useState? - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь отправить объект состояния моего компонента. Я использовал компонент класса и преобразовал его в функцию, использующую useState(), но теперь я не могу получить доступ к объекту состояния, используя this.state.

Я заменил его, создав объект с именем state, но я предполагаю, что это не самое элегантное решение ...

export default function Contact () {
    const [name, setName] = useState("")
    const [email, setEmail] = useState("")
    const [enquiryType, setEnquiryType] = useState("General Enquiry")
    const [message, setMessage] = useState("")

    const state = {
        name,
        email,
        enquiryType,
        message
    }

    const handleSubmit = (e) => {
        e.preventDefault()
        console.log(state) // vs this.state
        var service_id = "default_service";
        var template_id = "message_template";
        var user_id = "user_[whatever]"
        emailjs.send(service_id, template_id, state, user_id); // vs this.state
    }

}

Ответы [ 2 ]

0 голосов
/ 26 мая 2020

, если я правильно понял вашу проблему, вы можете использовать useReducer или, если вы хотите использовать useState, вы можете попробовать этот метод:

const initialStates={...yourObject}
const [state,setState]=useState(initialStates)

, а затем передать его как состояние

0 голосов
/ 26 мая 2020

Вы разбили свое состояние на 4 различных состояния. Вы также можете использовать эти состояния по отдельности, но я бы рекомендовал вам изучить хук useReducer, если вы хотите объединить эти состояния в один объект. Вы можете прочитать Kent C. dodds post для сравнения.

...