react hook版本 子传父

本文介绍了如何在React中使用useState Hook实现一个搜索输入框,当用户输入数据后显示清除按钮,点击清除按钮即可清空输入框并传递空字符串给父组件。
//定义一个数据


const [value, setValue] = useState<string>('')


//子组件在父组件

  <SearchInputField
                name='name'
                label='货物信息'
                icon={iconName}
                placeholder='输入姓名/手机号'
                value={value}
                maxlength={50}
                onChange={handleChange}
                onClearValue={(v) => setValue(v)}
                searchRequired
            />



//子组件
interface SearchInputFieldProps{
    onClearValue: (v: string) => void
}

export const SearchInputField = ({
    onClearValue,
}: SearchInputFieldProps) => {
    const clearInputValue = () => {
        onClearValue('')
    }
    return (
        <Wrapper showBottomBorder={showBottomBorder}>
            {!!value && (
                <IconBox
                    onClick={(e) => {
                        e.stopPropagation()
                        clearInputValue()
                    }}
                >
                    <Icon
                        color={Colors.BorderGray}
                        size={18}
                        name='Close_round_fill-01'
                    />
                </IconBox>
            )}
        </Wrapper>
    )
}

这个方法主要实现的效果是 输入框输入数据后,清除按钮显现,点击清除按钮清空输入框。子组件点击传递一个空字符串回去,父组件接收

### 实现子组件向组件递数据 在 React 中,子组件可以借助回调函数的方式将数据递给组件。具体来说,在组件中定义一个处理逻辑的函数,并把这个函数作为属性(prop)的形式递给子组件。当特定条件满足时,比如按钮点击事件触发,子组件内部就可以调用该函数并将需要输的数据作为参数一同发送出去。 #### 使用函数式组件与钩子实现子间通讯 对于现代开发场景下更推荐使用的函数式组件而言,下面是一个简单的例子展示如何利用 TypeScript 来增强类型安全性的同时完成这一过程: ```typescript // 定义接口描述 props 类型 interface ParentComponentProps {} // 组件接收来自子组件的消息并显示出来 const ParentComponent: React.FC<ParentComponentProps> = () => { const [messageFromChild, setMessage] = React.useState<string>(''); // 处理来自子组件的信息更新状态 function handleMessage(message: string): void { setMessage(message); } return ( <> {/* 将handleMessage 函数通过prop 'onAction' 入 */} <ChildComponent onAction={handleMessage} /> <p>{messageFromChild}</p> </> ); }; // 子组件接受组件来的方法用于通知消息变化 interface ChildComponentProps { onAction: (message: string) => void; } const ChildComponent: React.FC<ChildComponentProps> = ({ onAction }) => { return ( <button onClick={() => onAction('Hello from child!')}> Click me to send message to parent </button> ); }; ``` 上述代码展示了如何创建两个相互关联的组件——`ParentComponent` 和 `ChildComponent`。其中,`ParentComponent` 负责维护应用的状态并通过其自身的 `handleMessage()` 方法响应由 `ChildComponent` 发起的动作;而 `ChildComponent` 则负责提供用户交互界面(如按钮),并在适当时候调用接收到的 `onAction` 属性所指向的方法来告知级发生了什么改变[^1]。 此外,如果项目允许使用类组件,则也可以采用相似的方式来构建这种双向沟通机制。不过随着 React 生态系统的演进和发展趋势来看,如今更多开发者倾向于选择更加简洁直观且易于理解的 Hook API 进行编程实践[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值