我正在为我的项目使用React。首先,我需要设计一个可恢复的Input
组件。这是我的代码:
import React from "react";
import TextField from "@material-ui/core/TextField";
const Input = ({
name,
value,
label,
errorMessage,
type,
onChange,
fullWidth
}) => {
return (
<TextField
name={name}
value={value}
label={label}
helperText={<span style={{ color: "red" }}>{errorMessage}</span>}
type={type}
onChange={onChange}
margin="normal"
fullWidth={fullWidth}
/>
);
};
对于此组件,我完全通过了seven
个道具。但是,某些道具,例如name
,type
和fullWidth
,更像是config
。我的问题是我应该直接传递这些道具,还是应该将这三个道具包裹在others
道具中?
const Input = ({
value,
label,
errorMessage,
onChange,
others
}) => {
return (
<TextField
value={value}
label={label}
helperText={<span style={{ color: "red" }}>{errorMessage}</span>}
onChange={onChange}
margin="normal"
{...others}
/>
);
};
这可能会使其他开发人员更灵活地使用此组件吗?
答案 0 :(得分:2)
const DeliInput = ({
value,
label,
errorMessage,
onChange,
...rest
}) => {
return (
<TextField
value={value}
label={label}
helperText={<span style={{ color: "red" }}>{errorMessage}</span>}
onChange={onChange}
margin="normal"
{...rest}
/>
);
};
还可以使用PropTypes
进行更好的类型检查。
使用rest
方法,您无需将道具传递给他人。
您必须像这样简单地使用它
<DeliInput name='something' fullWidth />
以此类推。