Входное логическое значение переключателя проводки (React / Typescript) - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь опубликовать значение состояния переключателя управления входом переключателя, однако, когда я отправляю функцию отправки запроса submitRecommendation() с помощью кнопки, я получаю ошибку JSON parse error: Cannot deserialize instance of `boolean` out of START_OBJECT token; nested exception.

Что я здесь не так делаю? и есть ли способ, которым я могу написать эту функцию, чтобы иметь несколько элементов управления переключением, без повторения кода?

interface IState {
      mentorInfoComplete?: boolean;
      hasChanged?: boolean;
    }
class Component extends React.Component<Props, State> {
  public state: State = {
    mentorInfoComplete: false
  }


  public render() {
    const {} = this.props;
    const { mentorInfoComplete } = this.state;
    const {} = this;

  <div className={classes.switchContainer}>
                    <FormGroup row>
                        <FormControlLabel
                          control={
                            <Switch
                              checked={mentorInfoComplete}
                              onChange={this.handleChange}
                              value={mentorInfoComplete}
                            >Toggle</Switch>
                            }label="YES"
                            />
                      <Typography color="secondary" variant="body1" className={classes.toggleQuestions}>Is this question complete</Typography>
                    </FormGroup>
                  </div>

            <Button
              color="primary"
              className="reviewApplication-back"
              variant="contained"
              type="submit"
              onClick={this.submitRecommendation}>
              Recommend Approval
            </Button>

  private handleChange() {
     this.setState({
      mentorInfoComplete: true
   });
   console.log(this.state);
  }

private async submitRecommendation() {
  const { 
    application,
    mentorInfoComplete
   } = this.state;

    if (!application) {
        return;
      }

      try {
        await axios.post(
          `/mentorApplication/${match.params.applicationId}/checklist`,
          {
            mentorInfoComplete: { mentorInfoComplete }
                  }
            );
    }
    }

1 Ответ

0 голосов
/ 14 января 2019

Не зная API, я думаю, что это оскорбительная строка: mentorInfoComplete: { mentorInfoComplete }

Ты по сути делаешь это mentorInfoComplete: { true } когда я угадываю, что вы хотите mentorInfoComplete: true

Попробуйте избавиться от лишних скобок и посмотрите, поможет ли это?

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