#typescript #ag-grid
Вопрос:
Я пытаюсь использовать ag-grid
в react
tyescript
проекте, и я сталкиваюсь с проблемами с типами при выполнении руководства. В части включения выбора.
В строке: const selectedNodes: RowNode[] = gridRef.current.api.getSelectedNodes();
Ошибка: Property 'api' does not exist on type 'AgGridReact'
Даже при определении: const gridRef = useRef<AgGridReact>(null);
Я взглянул на agGridReat.d.ts
:
export declare class AgGridReact extends Component<AgGridReactProps | AgReactUiProps, {}> {
api: GridApi;
columnApi: ColumnApi;
private setGridApi;
render(): JSX.Element;
}
Похоже api
, здесь определено.
Есть ли способ избежать всех этих проблем, но при этом использовать typescript? Чего мне не хватает?
Комментарии:
1. Убедитесь, что у вас есть импорт
import { AgGridReact } from 'ag-grid-react/lib/agGridReact';
(нетimport { AgGridReact } from 'ag-grid-react';
)2. @ccheneson похоже, это то, что мне было нужно. Но почему, а также как вы узнали?
3. Я скопировал / вставил ваши фрагменты и наблюдаю то же самое, что и вы. Я вспомнил, что у меня было 2 варианта из vscode, и я попробовал другой. Я думаю, что ваш фрагмент с определением класса и правильный файл импорта совпадают. Я не знаю, когда вы будете использовать другой импорт.
4. Не уверен, что вы получите тот же результат, но, похоже
const selectedNodes: RowNode[] | undefined = (gridRef.current as AgGridReact).props.api?.getSelectedNodes();
, работает сimport { AgGridReact } from 'ag-grid-react';