【发布时间】:2017-08-17 17:11:12
【问题描述】:
你好,我是 React 的新手,我想玩一点 React,但有一点我不明白。
首先,使用返回我的数据的 axios 数据获取以下内容,然后我尝试将它们放入输入字段中,value(并且是只读的),defaultValue 更好,现在我遇到了问题,我什么也没看到,当我用萤火虫查看时该值存在,奇怪的是,当我添加一个不需要的字符时,输入会被我想要的而不是默认填充。
非常奇怪的是,当我将所有内容放入一个数组并对其执行映射函数时,我得到了值
json 代码
{"firma":"hallo","strasse":"musterweg 7","plz":"01662"}
js 代码
import React from 'react';
import ReactDOM from 'react-dom';
import axios from 'axios';
class Testx extends React.Component {
constructor(props) {
super(props);
this.state = {
data:[]
};
}
componentDidMount(){
var self = this;
axios.get('http://localhost/index.php')
.then(function (response) {
self.setState({ data: response.data});
})
.catch(function (error) {
console.log(error);
});
}
render() {
return (
<div>
<input type="text" defaultValue={this.state.data.firma}/>
</div>
);
}
}
ReactDOM.render(<Testx/>, document.getElementById('hello'));
【问题讨论】:
-
您尝试访问数组中的属性
firma而不是对象 -
defaultValue仅适用于初始渲染。请改用value。 -
啊,我明白了,我在这个职位上所做的一切没有任何意义,感谢您²,我想我现在可以为我创建一个适合我计划的解决方案
-
请不要做
var self = this之类的事情。那已经过时了。尝试通过使用箭头函数或在构造函数中绑定你的函数来保持this的范围。 -
@Nocebo,嗯,好吧,我自己只是一个解决方案,我无法在我的函数中加入这个,并在网络上快速找到了这个解决方案并且运行良好
标签: javascript node.js reactjs axios