我还是习惯了反应,但似乎遇到了一个问题,我无法将我的数组项目推送为文本而不是对象。现在,我有一个API调用来检索json,然后将它存储到一个状态以供以后使用。最终目标是在return语句中生成无序列表,但是,每当我尝试将项目推送到数组时,它们都会以对象而不是字符串形式出现。我该如何解决这个问题?React JS将项目推向列表的阵列
国家和API调用输出的
class App extends Component {
constructor(props) {
super(props);
this.state = {
value: '',
data: {}, //filled by fetch data from API
imgData: {}, //filled by fetch image data from API
typeData: {}, //filled by fetch types data from API
types: {
typesArray: []
},
typeDataTotal: {},
specificTypeData: {}
};
}
handleChange(event) {
this.setState({value: event.target.value});
}
handleSubmit(event) {
//alert('Text field value is: ' + this.state.value);
var _this = this;
fetch('https://pokeapi.co/api/v2/pokemon/' + this.state.value + '/').then(function(response) {
if (response.status !== 200) {
console.log('Looks like there was a problem. Status Code: ' + response.status);
return;
}
// Examine the text in the response
response.json().then(function(data) {
console.log(data);
console.log(data.sprites.front_default);
_this.setState({data: data});
_this.setState({imgData: data.sprites});
_this.setState({typeData: data.types[0].type});
_this.setState({specificTypeData: data.types}); //this is the one I want to use for keys in the array
_this.setState({
typeDataTotal: Object.keys(data.types)
});
console.log(data.types[0].type.name); //shows item as string
console.log(data.types[1].type.name);
console.log(Object.keys(data.types).length);
});
}
}
render() {
var data = this.state.data;
var imgData = this.state.imgData;
var typeData = this.state.typeData;
var typeDataTotal = this.state.typeDataTotal;
var specificTypeData = this.state.specificTypeData;
var forms = [];
for (var key in typeDataTotal) {
console.log("obj." + key + " = " + specificTypeData[key].type.name);
forms.push(<formjs data={specificTypeData[key].type.name}/>);
console.log(forms);
}
return (
<div>{forms}</div>
);
}
}
我已将我的代码更新到最新版本。当我console.log对象/密钥对,他们显示为字符串。但是,当我尝试将它推入我的表单数组时,它会返回到[Object,Object]。 – motoko96
对不起,我刚刚注意到,但是,你在'render'方法中返回了什么?你应该回来的东西 –
我回来了