我尝试在一个循环中动态创建多个选择唐斯。当只有纯html时,html-react-parser工作正常。但是,当我向select标记添加onChange函数时,它不能正确解析该部分。实际上,它似乎忽略了它。
let selectOptions = "<th>Details</th>";
for(var j=0;j<envsToCommitsHolder.length;j++){
selectOptions += "<th><select onChange={(event) => {handleOptionSelection(event.target.selectedOptions)}} id="+realRepoName[j+1]+"><option>"+realRepoName[j+1]+"</option>";
for(var h=0;h<envsToCommitsHolder[j].val.length;h++){
console.log(realRepoName[j+1]);
console.log(envsToCommitsHolder[j].val[h]);
//var value = envsToCommitsHolder[j].val[h];
selectOptions += "<option value="+h+">"+envsToCommitsHolder[j].val[h]+"</option>";
}
selectOptions += "</select></th>";
}
return parse(selectOptions);
请看附件中的图片,看看它是如何被呈现的。它把javascript完全放在select标签之外。我应该用其他的方法来做吗?我已经附上了带有onChange的select是如何在浏览器-〉problematic part上呈现的图片。我还看到有一个“dangerouslySetInnerHTML”来解析字符串并从中呈现html,但是我不知道如何使用它,或者它在这种情况下是否有用。任何帮助都将非常感谢。我被这个卡住了。
1条答案
按热度按时间vjhs03f71#
我已经创建了一个沙箱来动态呈现选择选项,您可以自定义呈现,https://codesandbox.io/s/react-typescript-forked-8psy13?file=/src/App.tsx
React基本知识:useState,useEffect如果你有问题,可以在这里问我