【发布时间】:2021-04-29 23:56:32
【问题描述】:
我希望创建一个功能组件,该组件接受一个钩子及其 Set 函数作为参数,并使用这些字段(以及其他一些字段)构造一个关联的输入。遇到传递传播运算符的问题(如“Learning React, 2nd edition”中所述)。以下相关sn-ps,不胜感激!
- 接受初始值并返回新钩子及其 setValue 函数的通用函数:
export const useInput = (initialValue) => {
const [value, setValue] = useState(initialValue);
return [
{ value, onChange: (e) => setValue(e.target.value) },
() => setValue(initialValue),
];
};
- 要使用的钩子:
const [firstName, setFirstName] = useInput("");
- 功能组件(经过一些清理)
const MyInputComp = (props) => {
return (
<div>
<input
className="blah-blah-blah"
{props.obj} // *ERROR*
type="text"
placeholder={props.placeholder}
required={props.required}
/>
</div>
);
};
- 组件的调用方式如下:
<MyInputComp
text="First Name"
obj={...firstName} // *ERROR*
placeholder="Jon"
required={true}
/>
【问题讨论】:
标签: reactjs react-hooks react-functional-component