各位大大好!真是抱歉,請教一個小簡單問題,我使用React.js的jsx語法render()內return img標籤結果出現錯誤,我該怎麼辦呢? 我使用vscode編輯器,go live 執行。
我上網查到資料:https://molly1024.medium.com/7-%E7%A8%AE%E5%9C%A8-react-%E5%BC%95%E5%85%A5%E5%9C%96%E7%89%87%E7%9A%84%E6%96%B9%E6%B3%95-%E7%82%BA%E4%BB%80%E9%BA%BC-img-%E7%9A%84-src-%E7%84%A1%E6%95%88-41a65965c468
我照上面網址使用的第二個方法require還是出現錯誤,我該怎麼辦呢?
程式碼,如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://unpkg.com/react@18/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js" crossorigin></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
</head>
<body>
<div id="demo"></div>
<script type="text/babel">
class Bird extends React.Component {
render(){
return <img src={require('./image/bird.jpg')}>
}
}
const root = ReactDOM.createRoot(document.getElementById('demo')).render(<Bird />);
</script>
</body>
</html>
vscode編輯器上的錯誤訊息,如下:
JSX element 'img' has no corresponding closing tag.
Unexpected token. Did you mean `{'}'}` or `}`?
Unexpected token. Did you mean `{'}'}` or `}`?
'</' expected.
照片如下:
在 jsx 中,要記得所有標籤必須以自行關閉格式或相應的結束標籤關閉唷,按照你的程式碼,帶入圖片時試著這樣寫,應該就可以了:
class Bird extends React.Component {
render(){
return <img src={require('./image/bird.jpg')} />
}
}
參考資源:self-closing-comp
另外建議要給圖片alt的屬性唷~~
alt 是圖片的替代訊息,圖片如果有意外狀況沒有正確地呈現,那麼這個屬性值就會起作用。以你的程式碼為例:
class Bird extends React.Component {
render(){
return <img src={require('./image/bird.jpg')} alt="替代文字" />
}
}
參考資源:HTML alt Attribute
謝謝妳