解決React報(bào)錯(cuò)No duplicate props allowed
總覽
當(dāng)我們?yōu)橄嗤慕M件傳遞相同的屬性多次時(shí),就會(huì)導(dǎo)致"No duplicate props allowed"警告。為了解決該警告,請(qǐng)確保只傳遞一次該屬性。比如說(shuō),如果傳遞多次className屬性,將它們連接成一個(gè)空格分隔的字符串。
下面的示例用來(lái)展示如何導(dǎo)致警告的。
const App = () => {
// ?? JSX elements cannot have multiple attributes with the same name.ts(17001)
// No duplicate props allowed eslintreact/jsx-no-duplicate-props
return (
<div>
<Button text="Click" text="Submit" />
</div>
);
};
function Button({text}) {
return <button onClick={() => console.log('button clicked')}>{text}</button>;
}
export default App;
代碼片段中的問(wèn)題在于,我們?yōu)?code>Button組件傳遞了兩次text屬性。這是不被允許的,因?yàn)榈诙€(gè)text屬性會(huì)覆蓋第一個(gè)。
請(qǐng)確保每個(gè)屬性只傳遞給同一個(gè)組件一次。
const App = () => {
// ??? only pass text prop once
return (
<div>
<Button text="Submit" />
</div>
);
};
function Button({text}) {
return <button onClick={() => console.log('button clicked')}>{text}</button>;
}
export default App;
className
如果你在試圖傳遞多個(gè)className屬性時(shí)得到了錯(cuò)誤,你必須將它們串聯(lián)成一個(gè)字符串,并且只傳遞一次屬性。
const App = () => {
return (
<div>
<h2 className="my-class-1 my-class-2 my-class-3">Hello world</h2>
</div>
);
};
export default App;
我們不需要傳遞多個(gè)className屬性,而是要在我們?yōu)?code>className屬性設(shè)置的字符串中傳遞多個(gè)以空格分隔的類(lèi)。
如果你需要在一個(gè)字符串屬性中插入變量,請(qǐng)使用模板字面量。
const App = () => {
const class1 = 'bg-lime';
const class2 = 'text-white';
return (
<div>
<h2 className={`padding-3 ${class1} ${class2}`}>Hello world</h2>
</div>
);
};
export default App;
需要注意的是,模板字面量使用反斜線``,而不是單引號(hào)。美元符號(hào)大括號(hào)${} 語(yǔ)法里的表達(dá)式,將被替換成class1和class2變量的實(shí)際值。
總結(jié)
為了解決該錯(cuò)誤,我們要確保相同的屬性只傳遞一次。如果傳遞多次className屬性,將它們連接成一個(gè)空格分隔的字符串。
以上就是解決React報(bào)錯(cuò)No duplicate props allowed的詳細(xì)內(nèi)容,更多關(guān)于React報(bào)錯(cuò)duplicate props的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- React報(bào)錯(cuò)Type '() => JSX.Element[]' is not assignable to type FunctionComponent
- React報(bào)錯(cuò)Element type is invalid解決案例
- React報(bào)錯(cuò)Function?components?cannot?have?string?refs
- React報(bào)錯(cuò)Too many re-renders解決
- 解決React報(bào)錯(cuò)Property 'X' does not exist on type 'HTMLElement'
- Can't?perform?a?React?state?update?on?an?unmounted?component報(bào)錯(cuò)解決
- Objects are not valid as a React child報(bào)錯(cuò)解決
- 解決React報(bào)錯(cuò)React.Children.only expected to receive single React element child
相關(guān)文章
react+antd4實(shí)現(xiàn)優(yōu)化大批量接口請(qǐng)求
這篇文章主要為大家詳細(xì)介紹了如何使用react hooks + antd4實(shí)現(xiàn)大批量接口請(qǐng)求的前端優(yōu)化,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2024-02-02
基于React Native 0.52實(shí)現(xiàn)輪播圖效果
這篇文章主要為大家詳細(xì)介紹了基于React Native 0.52實(shí)現(xiàn)輪播圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11
React+valtio響應(yīng)式狀態(tài)管理
Valtio是一個(gè)很輕量級(jí)的響應(yīng)式狀態(tài)管理庫(kù),使用外部狀態(tài)代理去驅(qū)動(dòng)React視圖來(lái)更新,本文主要介紹了React+valtio響應(yīng)式狀態(tài)管理,感興趣的可以了解一下2023-12-12
React組件如何優(yōu)雅地處理異步數(shù)據(jù)詳解
這篇文章主要為大家介紹了React組件如何優(yōu)雅地處理異步數(shù)據(jù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
react實(shí)現(xiàn)可播放的進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了react實(shí)現(xiàn)可播放的進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
react中如何對(duì)自己的組件使用setFieldsValue
react中如何對(duì)自己的組件使用setFieldsValue問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
使用React代碼動(dòng)態(tài)生成柵格布局的方法
這篇文章主要介紹了使用React簡(jiǎn)短代碼動(dòng)態(tài)生成柵格布局的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05

