Очистить радиовход от React parent - PullRequest
0 голосов
/ 02 апреля 2020

возникли проблемы при попытке очистить радиовход, когда я перебираю некоторые вопросы. Это настройка у меня есть. Желание setCheckedFalse очистить все ответы, когда я нажимаю кнопку, которая вызывает «handleNextQuestion». В настоящее время я просто не могу нажать на какие-либо ответы, так как они кажутся заблокированными как ложные.

const Survey = () => {
    const setCheckedFalse = () => {
        return true
    }

    const handleNextQuestion = () => {
        if(currentQuestion < questions.length - 1) {

            const answer = {questionId: survey.id, answer: selectedAnswer};
            setSavedAnswers(savedAnswers => [...savedAnswers, answer])
            setCurrentQuestion(currentQuestion + 1)
            setCheckedFalse(true)
            setAnswer('')
        }
    }
    return (
    <div className="section">
        <div className="container">
            <div className={styles.surveyContainer}>   
                <Answers
                    answers = {survey}
                    selected = {selectedAnswer}
                    handleClick = {handleClick}
                    setCheckedFalse = {setCheckedFalse}
                />
                <button className="button is-primary" onClick={handleNextQuestion}>Next</button>
            </div>
        </div>
    </div>
const Answers = (props) => {
return (
    <>
        <div className={styles.itemList}>
            <label className={styles.labelWrapper}>
                <input 
                    type="radio" 
                    name="answer" 
                    className={styles.customRadio} 
                    onClick={props.handleClick}
                    value="a"
                    checked={props.setCheckedFalse}
                />
                <span>{props.answers.answer_a}</span>
            </label>
            <label className={styles.labelWrapper}>
                <input 
                    type="radio" 
                    name="answer" 
                    className={styles.customRadio} 
                    onClick={props.handleClick}
                    checked={props.setCheckedFalse}
                    value="b"
                />
                <span>{props.answers.answer_b}</span>
            </label>
        </div>
    </>
)

}

1 Ответ

0 голосов
/ 02 апреля 2020

Это может быть проблема:

const setCheckedFalse = () => {
        return true
}

и

setCheckedFalse(true)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...