Как установить мое значение во входном значении реагировать JS - PullRequest
0 голосов
/ 21 октября 2019

Я пытался установить свое значение во входном значении, но все время я получал undefined в консоли, и я хотел установить значения из API в значении, но я не мог так установить значения во входном значении, и ятакже попытался удалить ref и посмотреть, но все еще значение ввода показывает undefined, когда я установил value={2} на входе.

И вот оно:

this.state = {
      // movie: [],
      user: this.props.value,
      text: "",
      errors: []
    };


async componentDidMount() {
    try {
      const res = await fetch(
        `https://softbike.dev.myddp.eu/api/1/deliveries/user1/`
      );
      const movie = await res.json();
      console.log(movie);
      this.setState({
        movie: movie.pk
      });
    } catch (e) {
      console.log(e);
    }
  }

  handleChange(event) {
    this.setState({
      [event.target.name]: event.target.value
    });
    console.log(this.state);
  }

Вот код ввода:

<div className="row">
          <div className="col-sm-12">
            <label id="p"> UZYTKOWNIK</label>
            <input
              type="text"
              ref="user"
              className="form-control"
              name="user"
              value={movie.id}
              onChange={this.handleChange}
            />
           <p>g {this.state.value}</p>
          </div>

Пожалуйста, помогите мне, как решить эту проблему.

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

Попробуйте:

this.state = {
    movie: {},
    user: this.props.value,
    text: "",
    errors: []
};


componentDidMount() {
    const fetchMovie = async () => {
        try {
          const res = await fetch(`https://softbike.dev.myddp.eu/api/1/deliveries/user1/`);
          const movie = res.json();
          console.log(movie);
          this.setState({
             ...this.state,
             movie: movie.pk
          });
        } catch (e) {
           console.log(e);
        }
    }
    fetchMovie(); // Call async fundtion
}

  handleChange(event) {
    this.setState({
      [event.target.name]: event.target.value
    }, () => {
        console.log(this.state);
        // Because setState is async function, so you have to console.log in callback of
        // setState to see the new data of this.state
    });
  }

Ввод:

<div className="row">
    <div className="col-sm-12">
        <label id="p"> UZYTKOWNIK</label>
        <input
          type="text"
          ref="user"
          className="form-control"
          name="user"
          defaultValue={this.state.movie.id}
          onChange={this.handleChange}
        />
    <p>g {this.state.value}</p>
</div>
0 голосов
/ 21 октября 2019
<div className="col-sm-12">
   <label id="p"> UZYTKOWNIK</label>
   <input
      type="text"
      ref="user"
      className="form-control"
      name="user"
      value={this.state.movie && this.state.movie.id}
      onChange={this.handleChange}
 />
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...