我需要使用CSS制作一个看起来像链接的按钮.更改已完成,但是当我单击它时,它显示为按下按钮.知道如何删除它,以便即使点击按钮也可以作为链接使用吗?
更新到React 16.9.0之后,我得到了这样的警告:
警告:作为安全预防措施,未来版本的React将阻止javascript:URL。如果可以,请改用事件处理程序。如果您需要生成不安全的HTML,请尝试使用dragonallySetInnerHTML。React已传递“ javascript :;”。
它来自如下代码:
const Component = ({someAction}) => (
<a href="javascript:void(0)" onClick={someAction}>click me</a>
);
Run Code Online (Sandbox Code Playgroud)
查看关于我应该为 HTML中的JavaScript链接使用哪个“ href”值的StackOverflow问题,似乎你们中的大多数人都同意这javascript:void(0)是最好的选择,在React 16.9.0中将不再可能。
仅替换为href="#"是有问题的,因为浏览器将滚动到页面顶部并更改显示的URL。尤其是如果您使用哈希链接进行路由,这将是一个很大的问题。
我可以更新整个代码库,使其包含e.preventDefault();在每个事件处理程序中,但这似乎很难做到,尤其是当事件处理程序是由Redux动作创建者或挂钩自动创建时。我不会在任何地方寻找答案“仅包括e.preventDefault();”!
另外,<button>我还必须使用一种方法来处理许多不必要的样式。
所以我想知道:是否有特定于React库的解决方案才能获得<a>可以触发动作而没有副作用的有效链接?我想尽可能少地更改代码,并摆脱弃用警告。