我有一個樣式化的組件,它需要接收道具來決定它的樣式。看起來像這樣:
const StyledTypography = styled(Typography)(
({ myColor = "black", isLarge = false }) => ({
"&&": {
fontSize: isLarge ? 30 : 16,
border: `1px solid ${myColor}`,
margin: 10,
color: myColor
}
})
);
不幸的是isLarge導致以下警告:
警告:React 無法識別
isLargeDOM 元素上的 prop。如果您有意希望它作為自定義屬性出現在 DOM 中,請將其拼寫為小寫字母islarge。如果您不小心從父組件傳遞了它,請將其從 DOM 元素中移除。
(與 相同myColor)
在另一個執行緒中,有人告訴我,需要做的就是shouldForwardProp在第二個引數中用作回傳布林值的函式,以決定應該在 DOM DOM 中傳遞哪些道具:
const StyledTypography = styled(Typography, { shouldForwardProp: () => false })(
...
);
不幸的是,這不起作用。
有沒有辦法做到這一點?
這是一個帶有警告和所有內容的作業示例應用程式:https ://codesandbox.io/s/crimson-fast-qll47?file=/src/App.js
uj5u.com熱心網友回復:
嘗試這個
import styled from '@emotion/styled'
const StyledTypography = styled(Typography, {
shouldForwardProp: (prop) => prop !== "myColor" && prop !== "isLarge"
})(
...
);
const StyledButton = styled(Button, {
shouldForwardProp: (prop) => prop !== "myColor"
})(
...
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/442114.html
標籤:javascript 反应 材料-ui 情感
上一篇:將jQuery下拉更改事件處理程式轉換為純JavaScript代碼
下一篇:PHP注意:未定義索引:第66行/var/www/mysite/public_html/index.php中的user_type,參考者:https://example.com/
