我正在设计必需 TextField
like this
const styles = theme => ({
labelAsterisk: {
color: "red"
},
cssLabel: {
color: "orange"
},
cssRequired: {
"&:before": {
borderBottom: "2px solid orange"
}
},
});
<TextField
id="requiredField"
label="Required Field"
value="Custom Text"
required
InputLabelProps={{
classes: {
root: classes.cssLabel
},
FormLabelClasses: {
asterisk: classes.labelAsterisk
}
}}
InputProps={{
classes: {
underline: classes.cssRequired
}
}}
margin="normal"
/>
我的表单中有很多这些必填字段,并且希望对其进行标准化,而不是复制和粘贴大量代码。
重构此方法的最佳方法是什么,以便每次使用时仅需要指定id
,label
和value
?
我可以扩展TextField
吗?
是否创建扩展React.Component
的新组件?
使用函数还是常量?
答案 0 :(得分:3)
这是定义自定义TextField组件的方式:
const RequiredTextField = ({id, label, value}) => (
<TextField
id={id}
label={label}
value={value}
required
InputLabelProps={{
classes: {
root: classes.cssLabel
},
FormLabelClasses: {
asterisk: classes.labelAsterisk
}
}}
InputProps={{
classes: {
underline: classes.cssRequired
}
}}
margin="normal"
/>
)
这是您将如何使用它:
<RequiredTextField id="some-id" label="some-label" value="some-value">