问题描述
我有一个打字稿文件,正在渲染一个简单的hello world div。我可以呈现HTML表,但是添加一个Input或一个Button则将其字面呈现为“ ”。
从我的经验来看,似乎我缺少要导入的软件包。我在下面粘贴了导入和Render()函数:
import * as watchUtils from "esri/core/watchUtils";
import Handles = require("esri/core/Handles");
import { declared,property,subclass } from "esri/core/accessorSupport/decorators";
import MapView = require("esri/views/MapView");
import Widget = require("esri/widgets/Widget");
import { renderable,tsx } from "esri/widgets/support/widget";
render() {
if(resolvedValue != null){
selectedHasfolder = "<table >";
for(var i = 0; i < resolvedValue.length; ++i){
selectedHasfolder += "<tr><td><button >Select inspection(s) to proceed.</button></td><td>" + resolvedValue[i]["PropertyA"] + "</td></tr>";
}
selectedHasfolder += "</table>";
}
return <div class="basemap23" style="background-color:#FFFFFF;" innerHTML={selectedHasfolder}></div>;
解决方法
我建议您做这样的事情,不要使用innerHTML
。
function Component() {
const selectedHasFolder = resolvedValue ? (
<table>
{resolvedValue.map((item,index) => (
<tr key={index}>
<td>item.propertyA</td>
<td>
<button>Select Inspection(s) to proceed.</button>
</td>
</tr>
))}
</table>
) : null;
return (
<div class="basemap23" style="background-color:#FFFFFF;">
{selectedHasFolder}
</div>
);
}