我正在研究从JSON服务器获取一些简单的JSON数据以在我的反应应用程序中显示的概念证明。这样做我试图调用fetch直接加载数据。当我这样做。
错误:“无法重新声明块范围变量'fetch'。
我的问题是,在使用常规手稿时,我该如何解决这个问题?
import React, { Component } from 'react';
import '../HeaderBar/HeaderBar.css';
type StatusBarProps = {};
type StatusBarState = {
launch_timer: boolean;
foreGroundTimer: number;
};
class StatusBar extends Component<StatusBarProps, StatusBarState> {
timerId: number;
constructor() {
super();
this.state = {
launch_timer: true,
foreGroundTimer: -1,
};
}
componentDidMount() {
window.fetch('localhost:3000/StatusComponent').then(results => {
return results.json();
}).then(data => {
let systemOff = 'green';
let systemOn = 'gray';
let statusBarBlocks = data.StatusComponent.map((Status) => {
return(
<div className="blockBar" id={Status.id} key={Status.key} style={{ backgroundColor: (this.state.foreGroundTimer >= Status.id) ? systemOff : systemOn }}> {Status.Name} </div>
);
});
this.setState({statusBarBlocks: statusBarBlocks});
});
}
componentWillUnmount() {
clearInterval(this.timerId);
}
tick() {
this.setState({ launch_timer: !this.state.launch_timer, foreGroundTimer: (this.state.foreGroundTimer + 1) % 26 });
}
render() {
return (
<div className="location">
<div className="col-xs-6">
{this.state.statusBarBlocks}
</div>
</div>
);
}
}
export default StatusBar;
编辑1:问题的位置是@ types / whatwg-fetch / index.d.ts,这让我相信这是打字稿的问题。我已经实现了Isomorphic-fetch无济于事。
答案 0 :(得分:1)
所以在努力发现这个问题的原因。我发现我有一个重叠,其中在Lib文件和@ types / whatwg-fetch中都声明了fetch。卸载此依赖项允许程序进行编译。解决问题。
whatwg-fetch new typescript 2.5.3
发现此SO帖子。感谢芬顿的回答。