Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在输入值中设置我的值_Javascript_Reactjs_Forms_Api - Fatal编程技术网

Javascript 如何在输入值中设置我的值

Javascript 如何在输入值中设置我的值,javascript,reactjs,forms,api,Javascript,Reactjs,Forms,Api,我试图在输入值中设置我的值,但我一直在控制台中获得undefined,我想在值中设置API中的值,但我无法确定如何在输入值中设置值,我还试图删除ref,但当我设置value={2}时,值输入仍然显示undefined输入 这是: this.state = { // movie: [], user: this.props.value, text: "", errors: [] }; async componentDidMount() {

我试图在输入值中设置我的值,但我一直在控制台中获得
undefined
,我想在值中设置API中的值,但我无法确定如何在输入值中设置值,我还试图删除ref,但当我设置
value={2}时,值输入仍然显示
undefined
输入

这是:

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>

乌兹特科尼克
g{this.state.value}

请帮助我如何解决此问题。


<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>
乌兹特科尼克
试试这个:

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>

乌兹特科尼克
g{this.state.value}


React的
setState
是异步的。如果您在
render()
方法中
console.log(this.state)
,是否看到您试图使用的数据?在任何地方都不会定义Movie使用Movie={}初始化state并使用value={this.state.Movie}