Material-UI 的 InputBase 组件是一个灵活的输入组件,可以用来创建自定义的输入框
npm install @mui/material @emotion/react @emotion/styled
import React from 'react';
import InputBase from '@mui/material/InputBase';
import { styled } from '@emotion/react';
const CustomSearchInput = (props) => {
const searchInput = styled(InputBase)(({ theme }) => ({
'label + &': {
marginTop: theme.spacing(3),
},
'input:focus ~ .MuiOutlinedInput-notchedOutline': {
borderColor: '#FF5722',
},
'input:focus': {
outline: 'none',
},
}));
return (
<searchInput
{...props}
placeholder="搜索..."
variant="outlined"
fullWidth
startAdornment={<span>🔍</span>}
/>
);
};
在这个例子中,我们创建了一个带有搜索图标的搜索框。我们使用了 styled
函数来自定义 InputBase 的样式,并添加了一些额外的样式。
import React from 'react';
import CustomSearchInput from './CustomSearchInput';
const App = () => {
return (
<div>
<h1>精选组件示例</h1>
<CustomSearchInput onChange={(e) => console.log(e.target.value)} />
</div>
);
};
export default App;
现在,你已经成功创建了一个使用 Material-UI InputBase 制作的精选组件。你可以根据需要进一步自定义这个组件,添加更多的功能和样式。
领取专属 10元无门槛券
手把手带您无忧上云