reactjs - ts(1128) - public render() 行需要声明或声明
问题描述
我有以下代码(遵循此示例代码),它编译时没有任何错误。该代码使用示例代码来使用 jQXWidget。
import React from "react";
import * as ReactDOM from "react-dom";
import JqxTabs from "jqwidgets-scripts/jqwidgets-react-tsx/jqxtabs";
import JqxGrid, {
IGridProps,
jqx
} from "jqwidgets-scripts/jqwidgets-react-tsx/jqxgrid";
import { properties } from ".././properties";
type Props = {
project
};
export interface MyState extends IGridProps {
visible: boolean,
assocProjectElementsVisible: boolean,
project: {},
selectedRowIndex: number,
deleteDialogVisible: boolean
}
export class ProjectElements extends React.PureComponent<Props, MyState> {
private myTabs = React.createRef<JqxTabs>();
private projectSpacesGridElement = React.createRef<HTMLDivElement>();
private pSpacesGridElement = React.createRef<JqxGrid>();
private baseUrl = properties.baseUrlWs;
constructor(props: Props) {
super(props);
/* const deleteRowClick = () => {
const selectedrowindex = this.pSpacesGridElement.current.getselectedrowindex();
if (selectedrowindex > -1) {
this.setState({
selectedRowIndex: selectedrowindex,
deleteDialogVisible: true
})
} */
this.state = {
visible: false,
project: {},
assocProjectElementsVisible: false,
selectedRowIndex: null,
deleteDialogVisible: false,
rendergridrows: (params: any): any[] => {
const data = params.data;
return data;
}
};
}
public render() {
return (
<JqxTabs
ref={this.myTabs}
theme={"arctic"}
width="1390px"
height={560}
initTabContent={this.initWidgets}
>
<ul>
<li style={{ marginLeft: 30 }}>
<div style={{ height: 20, marginTop: 5 }}>
<div style={{ float: "left" }}></div>
<div
style={{
marginLeft: 4,
verticalAlign: "middle",
textAlign: "center",
float: "left"
}}
>
Project Spaces
</div>
</div>
</li>
</ul>
<div style={{ overflow: "hidden" }}>
<div id="jqxGrid" ref={this.projectSpacesGridElement} />
<div style={{ marginTop: 10, height: "15%", width: "100%" }}></div>
</div>
</JqxTabs>
);
}
//Tab 1
private projectSpacesGrid = () => {
const source: any = {
datafields: [
{ name: "id", type: "long" },
{ name: "fileName", type: "string" }
],
datatype: "json",
root: "ProjectElements",
url: this.baseUrl + `api/ProjectElements/search/getProjectElementsByProjectId`
};
const dataAdapter = new jqx.dataAdapter(source, {
//async: false,
autoBind: true,
downloadComplete: (data: any, status: any, xhr: any): void => {
source.totalrecords = parseInt(data["page"].totalElements);
},
formatData: (data: any): any => {
data.value = this.props.project.id;
data.page = data.pagenum;
data.size = data.pagesize;
if (data.sortdatafield && data.sortorder) {
data.sort = data.sortdatafield + "," + data.sortorder;
}
return data;
},
loadError: (xhr: any, status: any, error: any) => {
alert('Error loading "' + source.url + '" : ' + error);
}
});
const columns: IGridProps["columns"] = [
{ datafield: "id", text: "ID Number", width: 100 },
{ datafield: "fileName", text: "Project Name", width: 275 }
];
const grid =
this.state.visible || this.state.assocProjectElementsVisible ? null : (
<div>
<JqxGrid
ref={this.pSpacesGridElement}
width={"100%"}
height={"100%"}
theme={"arctic"}
source={dataAdapter}
columns={columns}
/>
</div>
);
ReactDOM.render(grid, this.projectSpacesGridElement.current!);
};
private initWidgets = (tab: any) => {
switch (tab) {
case 0:
this.projectSpacesGrid();
break;
}
};
}
但是,一旦我取消注释该方法,我就会在线上deleteRowClick
出现错误,如下面的屏幕截图所示:public
public render()
deleteRowClick
取消注释该方法后我做错了什么?
解决方案
您在函数}
末尾缺少关闭。deleteRowClick
推荐阅读
- javascript - 如何在 Google 跟踪代码管理器中通过 JavaScript 发送 MailChimp API 请求?
- c++ - 字段联合和结构联合之间的区别
- matlab - 参量均衡器的幅度响应
- php - PHP获取数组foreach
- vba - 如何从 VBA 宏问题中使用翻译
- javascript - 用不同的文本在不同的 html 页面中多次渲染一个组件
- java - 如何将带有图像的 Google Doc 文件上传到云端硬盘?
- python - 如何解决“未找到 Python 共享库,未加载 Python 绑定”。在 R 中导入 Python3 包时?
- python - 如何在for循环中只打印一次语句
- python - 在 python 中使用 executemany 将浮点数加载到 SQL Server