Преобразование функционального компонента формы в форму Formik [с использованием реакционных хуков и редуксов] - PullRequest
0 голосов
/ 07 октября 2019

У меня есть следующий функциональный компонент для публикации комментария, который прекрасно работает:

const PostCommentForm = (props) => {

    const [st_newCommentContent, set_newCommentContent] = useState('');

    const currentUserId = authenticationService.currentUserValue["id"];

    const onClick_postComment = (e) => {
        e.preventDefault();
        props.postCommentEvent({
            Content: st_newCommentContent,
            ParentCommentId: null,
            UserId: currentUserId,
            DoesAgree: null,
            DateCreated: new Date(),            
        })

        set_newCommentContent('');
        //set_commentTextboxStatus(false);
    }

    return (
        <div>
            <form className="mt-2">
                <textarea
                    className="form-control"
                    placeholder="Type your comment"
                    value={st_newCommentContent}
                    onChange={(e) => { set_newCommentContent(e.target.value) }}
                />
                <button
                    onClick={onClick_postComment}
                    className="btn btn-info pull-right m-1">
                    Post
                </button>
            </form>

            <div style={{ clear: 'both' }}></div>
        </div>
    )
}

export default PostCommentForm;

Я хочу создать эту форму с Formik, но я не знаю, как мне следует обрабатывать отправку исостояние с Formik.

Я могу позвонить onClick_postComment внутри onSubmit Полагаю, но тогда где мне поставить setSubmitting(false), чтобы показать, что отправка завершена? Внутри onClick_postComment, но как?

onSubmit={({ commentText}, { setStatus, setSubmitting }) => {

    setStatus();
    onClick_postComment();
})

Кроме того, я не знаю, должен ли я все еще использовать состояние подключения с Formik. Я не мог найти четкий пример, показывающий использование Formik с крючками. Я ценю любую помощь.

...