我有以下 html 元素:
<a href onClick={() => fields.push()}>Add Email</a>
我需要 href 属性,因此引导程序使用链接样式(颜色、光标)为元素设置样式。
问题是,如果我现在点击它会导致浏览器重定向。如何更新上述内容以不重定向浏览器 onClick 但仍然运行fields.push()
?
我有以下 html 元素:
<a href onClick={() => fields.push()}>Add Email</a>
我需要 href 属性,因此引导程序使用链接样式(颜色、光标)为元素设置样式。
问题是,如果我现在点击它会导致浏览器重定向。如何更新上述内容以不重定向浏览器 onClick 但仍然运行fields.push()
?
您应该像这样从onClick事件调用preventDefault函数:
class App extends React.Component {
onClick = (e) => {
e.preventDefault()
console.log('onclick..')
}
render() {
return (
<a href onClick={this.onClick} >Click me</a>
)
}
}
您可以在您的用例中使用类似这样的东西:
const renderEmails = ({ fields }) => (
...
<a href onClick={(e) => {
e.preventDefault()
fields.push()
}}>Add Email</a>
...
)
这是一个简单的解决方案,
在 React 类组件上
class App extends React.Component {
onClick() {
console.log('onclick..')
}
render() {
return (
<a href={void(0)} onClick={this.onClick} >Click me</a>
)
}
}
React 正在放弃
javascript:void(0)
解决方案,并且 href 肯定不接受空属性值。
基本上 React 希望我们做的是使用不同的组件,例如按钮。我们总是可以使用 CSS 使按钮看起来像一个链接(因此,不会包含href
和删除它的行为的复杂性)。因此,不要使用锚标记作为按钮,而是使用按钮元素本身。希望这是有道理的。
您应该考虑在 react 组件中编写方法 clickHappens 而不是编写此内联方法。希望它有效!
<a href onClick={(e) => {e.preventDefault(); fields.push()}}> Add Email </a>
添加e.preventDefault()
到 onClick 并添加href="#"
属性
<a href="#" onClick={(e) => { e.preventDefault(); fields.push(); }}>Add Email</a>