【发布时间】:2019-01-31 06:39:17
【问题描述】:
所有, 我是 React+Typescript 主题的新手。 在我的示例代码中,我得到 json 对象并将一个属性打印到控制台上。来自服务器的数据成功来了。但是通过尝试使输出我收到消息“Property 'album' does not exist on type 'never[]'”,尽管所有类型都已定义。我哪里错了?我应该以某种方式初始化该州的“画廊”吗?
import React, { Component, Props } from 'react';
import axios from 'axios';
const API = 'http://www.mydomain/testapi/';
const DEFAULT_QUERY = 'test.php';
type Image = {
id: number,
name: string,
title: string,
date: string,
size: number
}
type Album = {
id: number,
name: string,
path: string,
images: Image[]
}
interface State {
jsonFromServer: string,
isLoading: boolean,
errorMsg: string,
buttonClicked: boolean,
gallery:Album[]
}
class App extends React.Component {
state = {
isLoading: false,
errorMsg: '',
buttonClicked: false,
jsonFromServer: "",
gallery:[]
}
getInfo() {
this.setState({ isLoading: true, buttonClicked: true });
axios.get(API + DEFAULT_QUERY)
.then(result => this.setState({
gallery: result.data.gallery,
isLoading: false,
jsonFromServer: result.data
}))
.catch(error => this.setState({
errorMsg: error.message,
isLoading: false
}));
}
render() {
.....
if (this.state.buttonClicked) {
this.state.galerie.length > 0 ? console.log('=>', this.state.gallery.album.id) : '';
}
......
}
}
export default App;
【问题讨论】:
-
你能解释一下你到底想达到什么目标吗?
标签: reactjs typescript