【发布时间】:2020-11-12 16:33:24
【问题描述】:
我收到以下错误:
错误:元素类型无效:应为字符串(对于内置 组件)或类/函数(用于复合组件),但得到: 不明确的。您可能忘记从文件中导出组件 它是在其中定义的,或者您可能混淆了默认导入和命名导入。
检查
Grid的渲染方法。
我的反应代码:
import React, { useState } from "react";
import ReactDOM from "react-dom";
import ReactDataGrid from "react-data-grid";
import { Toolbar, Data } from "react-data-grid-addons";
import axios from 'axios';
const selectors = Data.Selectors;
const columns = [
{ key: "MEMBER", name: "MEMBER", editable: true },
{ key: "ALIAS", name: "ALIAS", editable: true },
{ key: "STATUS", name: "STATUS", editable: true }
];
const handleFilterChange = filter => filters => {
const newFilters = { ...filters };
if (filter.filterTerm) {
newFilters[filter.column.key] = filter;
} else {
delete newFilters[filter.column.key];
}
return newFilters;
};
function getRows(rows, filters) {
return selectors.getRows({ rows, filters });
}
async function createRowData() {
const response = await axios.get('/api/files/fileData/Allupdate.txt'); // returns an array of objects
console.log(response)
return response.data;
}
function Example({ rows }) {
console.log('rows', rows); // I get this in console.log `rows Promise {<pending>}`
const [filters, setFilters] = useState({});
const filteredRows = getRows(rows, filters);
return (
<ReactDataGrid
columns={columns}
rowGetter={i => filteredRows[i]}
rowsCount={filteredRows.length}
minHeight={500}
toolbar={<Toolbar enableFilter={true} />}
onAddFilter={filter => setFilters(handleFilterChange(filter))}
onClearFilters={() => setFilters({})}
/>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<Example rows={createRowData()} />, rootElement);
【问题讨论】:
-
哪一行导致错误?
-
@DrewReese 更新了屏幕截图。
-
这 20 个折叠的堆栈帧中有哪些详细信息? IE。调用堆栈是什么样的?这可以/应该提供一些提示,说明您的整个
Example组件代码中有什么错误。
标签: reactjs