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}