- 普通語(yǔ)法中,阻止默認(rèn)行為可以通過(guò)返回false來(lái)進(jìn)行:
<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中,必須謹(jǐn)慎對(duì)待 JSX 回調(diào)函數(shù)中的
this,在 JavaScript 中,class 的方法默認(rèn)不會(huì)綁定this。如果你忘記綁定this.handleClick并把它傳入了onClick,當(dāng)你調(diào)用這個(gè)函數(shù)的時(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);