当渲染div标签列表时,如果div已经存在于DOM中,当第一次运行时,则会添加更少的html属性。
这是我的渲染方法:
render: function() {
return (
<div>
{renderModel(...)}
</div>
);
}
以下是renderModel(...)
function renderModel(...) {
var connections = [];
// code to come up with the string to compare for
if (checkString(stringToCheck)) {
connections.push(renderModel(...));
} else {
connections.push(<div onClick={handleClick} value={stringToCheck}>{label}</div>);
}
return connections;
}
因此renderModel(...)
将以递归方式呈现。
checkString(...)
函数将告诉何时直接打印div,或者递归查找子节点(其中,我在代码中跳过了实现)。
有一个数组有一些字符串,它们是这个函数逻辑的一部分。
有些div
标签最初是递归打印的,而有些则不是。然后根据用户操作,更改数组中的字符串。因此,当渲染运行第二次 - 在更改字符串之后 - 然后第一次递归渲染的div
需要打印而不进行递归,一切顺利,但div
标记被添加而没有value
或代码中的任何其他属性。
但有趣的是,onClick
句柄工作正常。只会跳过其他属性。
知道如何解决这个问题吗?