如何使用useState钩子和Typescript初始化状态

时间:2020-02-03 10:54:47

标签: reactjs typescript react-hooks

状态将在将来的某个时候使用带有对象数组的useState钩子进行更新,该对象具有如下所示的接口:

export interface DataSource {
  dataPiont: Array<DataPoint>;
}

export interface DataPoint {
  [key: string]: string | number;
}

我在必须初始化状态的地方设置了钩子:

const [fetchedData, setFetchedData] = useState<DataSource>([{ key: '' }]);

但是我收到Typescript错误"Argument of type '{ key: string; }[]' is not assignable to parameter of type 'DataSource | (() => DataSource)'.

我不想在我的界面中添加nullundefined[],因为我必须在整个应用程序中使用它。

如何在此实例中成功初始化状态?

1 个答案:

答案 0 :(得分:2)

因为no instance of constructor "std::vector<_Ty, _Alloc>::vector [with _Ty=float, _Alloc=std::allocator<float>]" matches the argument list具有class movmentCalculator { private: std::vector<float> toSim { {5, 5, 5, 5}, {6, 6, 6, 6}, {7, 7, 7, 7} }; public: void printStack() { for (int i = 0; i < toSim.size(); i++) for (int j = 0; j < toSim.size(); j++) { std::cout << "item" << i << ": " << toSim[i][j] << std::endl; } } }; 对象密钥。也许您想使用界面DataSource来表示状态?

dataPiont