[英]How do I change my InputBase's placeholder font/color in React?
I tried to do it with useStyles.我试着用 useStyles 来做。 I have the following code:
我有以下代码:
// imports above here
const useStyles = makeStyles((theme) => ({
placeholder: {
color: 'black',
fontSize: 'large',
},
}));
export default function Chatbox() {
const classes = useStyles;
const {currentChannel} = React.useContext(globalContext);
const [placeholder, setPlaceholder] =
React.useState('Message ' + Object.values({currentChannel})[0]);
useEffect(() => {
setPlaceholder('Message ' + Object.values({currentChannel})[0]);
}, [currentChannel]);
return (
<Paper
component="form"
sx={{
p: '4px 8px', display: 'flex', alignItems: 'center',
flexShrink: 1, width: 1670}}>
<InputBase
sx={{ml: 4, flex: 1}}
placeholder={placeholder}
inputProps={{'aria-label': 'chatbox'}}
className= {classes.placeholder}
/>
<Divider sx={{height: 48, m: 0.5}} orientation="vertical" />
<IconButton sx={{p: '25px'}} aria-label="send">
<SendIcon />
</IconButton>
</Paper>
);
}
However, my placeholder size and color never change even after changing the values in useStyles.. It stays grey and the same size.但是,即使更改了 useStyles 中的值,我的占位符大小和颜色也不会改变。它保持灰色和相同的大小。
You forgot to call the function.你忘了打电话给 function。
// imports above here
const useStyles = makeStyles((theme) => ({
placeholder: {
color: 'black',
fontSize: 'large',
},
}));
export default function Chatbox() {
const classes = useStyles(); // <--------- Here
const {currentChannel} = React.useContext(globalContext);
const [placeholder, setPlaceholder] =
React.useState('Message ' + Object.values({currentChannel})[0]);
useEffect(() => {
setPlaceholder('Message ' + Object.values({currentChannel})[0]);
}, [currentChannel]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.