【发布时间】:2020-12-23 20:11:50
【问题描述】:
嘿,我有将 onChange 事件向下传递到 AntD 选择输入的容器组件。我想将它传递下来并在输入中使用。
我没有在第二个参数中放什么类型看起来像这样
var onChange: ((value: string | undefined, option: OptionsType | OptionData | OptionGroupData) => void) | undefined
容器看起来像这样
export const TagsInputContainer = ({ value, onChange }: ContainerProps) => {
const { loading, payload, error } = useQuery(fetchTags({ perPage: PER_PAGE }));
console.log('value in Container', value);
const handleChange = (value: any) => {
console.log('handleChange value', value);
if (value) {
setInputValue(value);
onChange(value);
}
};
return <TagsInput loading={loading} error={error} tags={payload?.results} onChange={handleChange} />;
};
然后输入
export const TagsInput = ({ tags, onChange }: Props) => {
const { Option } = Select;
let children: Array<ReactNode> = [];
if (tags) {
children = tags.map((tag: { tag: string }, idx: number) => {
return (
<Option value={tag.tag} key={idx}>
{tag.tag}
</Option>
);
});
}
return (
<Styled.TagsSelect
placeholder="Dodaj tagi"
mode="tags"
onChange={onChange}
maxTagTextLength={INPUT_VALIDATE.tagCharMax}
>
{children}
</Styled.TagsSelect>
);
};
【问题讨论】:
标签: reactjs typescript antd react-hook-form