- 普通語法中兔港,阻止默認行為可以通過返回false來進行:
<a href="#" onclick="console.log('The link was clicked.'); return false">
Click me
</a>
- react中必須顯示的使用
preventDefault
function handleClick(e) {
e.preventDefault();
console.log('The link was clicked.');
}
-
????在react中比搭,必須謹慎對待 JSX 回調(diào)函數(shù)中的
this
啥酱,在 JavaScript 中爹凹,class 的方法默認不會綁定this
。如果你忘記綁定this.handleClick
并把它傳入了onClick
镶殷,當(dāng)你調(diào)用這個函數(shù)的時候this
的值為undefined
這和js函數(shù)工作原理有關(guān)禾酱,
解決方法:
- 使用 class fields 正確的綁定回調(diào)函數(shù):
handleClick = () => {
console.log('this is:', this);
}
在回調(diào)中使用箭頭函數(shù):
onClick={(e) => this.handleClick(e)}
在constructor中綁定
this.handleClick = this.handleClick.bind(this);