gpt4 book ai didi

javascript - JSX 没有产生预期的输出,SPAN 嵌套在 A 中

转载 作者:可可西里 更新时间:2023-11-01 02:38:39 24 4
gpt4 key购买 nike

我刚刚开始使用 React,并尝试使用 React 组件重新创建现有的 HTML 输出。

我不确定这是一个错误,还是我做错了什么,但最终的 HTML 输出并不是我所期望的。

问题是选项卡 anchor 文本不应包含在跨度中,只能包含以下数字。

从这个 JSX 开始:

/** @jsx React.DOM */;
var MyComponent = React.createClass({
render: function() {
return (
<div>
<div>
<ul>
<li><a>Tab1 <span>3</span></a></li>
<li><a>Tab2 <span>9</span></a></li>
<li><a>Tab3 <span>5</span></a></li>
<li><a>Tab4 <span>6</span></a></li>
</ul>
</div>
</div>
);
}
});
React.renderComponent(MyComponent({}), document.body);

编译成如下JS:

/** @jsx React.DOM */;
var MyComponent = React.createClass({displayName: 'MyComponent',
render: function() {
return (
React.DOM.div(null,
React.DOM.div(null,
React.DOM.ul(null,
React.DOM.li(null, React.DOM.a(null, "Tab1 ", React.DOM.span(null, "3"))),
React.DOM.li(null, React.DOM.a(null, "Tab2 ", React.DOM.span(null, "9"))),
React.DOM.li(null, React.DOM.a(null, "Tab3 ", React.DOM.span(null, "5"))),
React.DOM.li(null, React.DOM.a(null, "Tab4 ", React.DOM.span(null, "6")))
)
)
)
);
}
});
React.renderComponent(MyComponent({}), document.body);

然后呈现为以下 HTML:

<div data-reactid=".r[1ajsn]">
<div data-reactid=".r[1ajsn].[0]">
<ul data-reactid=".r[1ajsn].[0].[0]">
<li data-reactid=".r[1ajsn].[0].[0].[0]">
<a data-reactid=".r[1ajsn].[0].[0].[0].[0]">
<span data-reactid=".r[1ajsn].[0].[0].[0].[0].[0]">Tab1 </span>
<span data-reactid=".r[1ajsn].[0].[0].[0].[0].[1]">3</span>
</a>
</li>
<li data-reactid=".r[1ajsn].[0].[0].[1]">
<a data-reactid=".r[1ajsn].[0].[0].[1].[0]">
<span data-reactid=".r[1ajsn].[0].[0].[1].[0].[0]">Tab2 </span>
<span data-reactid=".r[1ajsn].[0].[0].[1].[0].[1]">9</span>
</a>
</li>
<li data-reactid=".r[1ajsn].[0].[0].[2]">
<a data-reactid=".r[1ajsn].[0].[0].[2].[0]">
<span data-reactid=".r[1ajsn].[0].[0].[2].[0].[0]">Tab3 </span>
<span data-reactid=".r[1ajsn].[0].[0].[2].[0].[1]">5</span>
</a>
</li>
<li data-reactid=".r[1ajsn].[0].[0].[3]">
<a data-reactid=".r[1ajsn].[0].[0].[3].[0]">
<span data-reactid=".r[1ajsn].[0].[0].[3].[0].[0]">Tab4 </span>
<span data-reactid=".r[1ajsn].[0].[0].[3].[0].[1]">6</span>
</a>
</li>
</ul>
</div>
</div>

javascript 清楚地将跨度显示为 anchor 的子级,所以我认为这可能是一个错误,但我想确保我没有做错什么。

最佳答案

是的,这是目前 React 的一个限制;为了让它进行实时更新,它需要通过将每个文本节点包装在一个跨度中来为每个文本节点提供一个 ID。

我希望将来某个时候能解决这个问题。

关于javascript - JSX 没有产生预期的输出,SPAN 嵌套在 A 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21762869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com