Я просто хочу знать, почему следующие исходные коды можно сократить, используя {...rest}
в аргументах и распространяя в атрибутах, как вы можете видеть в упрощенном коде.
В упрощенном коде для распространения value={value} onChange={onChange} type={type}
используется {...rest}
. Я не уверен, как это возможно.
Оригинальный код
import React from "react";
const Input = ({ type, name, label, error, value, onChange }) => {
return (
<div className="form-group">
<label htmlFor={name}>{label}</label>
<input
value={value}
onChange={onChange}
type={type}
name={name}
id={name}
className="form-control" />
{error && <div className="alert alert-danger">{error}</div>}
</div>
);
};
export default Input;
Упрощенный код
import React from "react";
const Input = ({ name, label, error, ...rest }) => {
return (
<div className="form-group">
<label htmlFor={name}>{label}</label>
<input {...rest} name={name} id={name} className="form-control" />
{error && <div className="alert alert-danger">{error}</div>}
</div>
);
};
export default Input;