我還是習慣了反應,但似乎遇到了一個問題,我無法將我的數組項目推送爲文本而不是對象。現在,我有一個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'方法中返回了什麼?你應該回來的東西 –
我回來了