reactjs - 从子组件 React 获取输入数据
问题描述
我有一个 React 表单,但是,我不使用表单的 Input,而是尝试用我的名为 SearchInput 的组件替换它。该组件返回一个选择并带有以下道具:
render() {
const options = this.state.data.map(d => <Option key={d.value}>{d.text}</Option>);
return (
<Select
showSearch
value={this.state.value}
placeholder={this.props.placeholder}
style={this.props.style}
defaultActiveFirstOption={false}
showArrow={false}
filterOption={false}
onSearch={this.handleSearch}
onChange={this.handleChange}
notFoundContent={null}
>
{options}
</Select>
);
}
我对 React 非常陌生。所以我试图做某事。像这样
class CityForm extends React.Component {
render() {
return (
<Form onFinish={this.onFinish} >
<SearchInput value={this.state.value} style={{ width: 200 }} />
<Button type="primary" htmlType="submit">
Submit
</Button>
</Form>
);
}
}
基本上只是将我的 SearchInput 渲染到 CityForm 中。但是我意识到,当然,表单并没有真正理解我的选择,因为它是输入。因此,我无法真正从中获得任何价值以进行进一步的搜索提交。有没有办法将我的选择直接呈现到表单的输入中并将其值作为数据获取,可以继续进行搜索(提交时)?
解决方案
我可以自己找到这个。只需在我的子组件中更改以下内容:
value={this.props.value}
onChange={this.props.onChangeValue}
并将我的表单组件中的属性更改为
<SearchInput value={this.state.value} onChangeValue={this.handleChangeValue} style={{ width: 200 }} />
我能够设置默认值并跟随值的变化。不过这篇文章非常有帮助。React - 子组件可以将值发送回父表单吗
推荐阅读
- javascript - 基于多个值过滤嵌套数组
- xaml - 如何在 Xamarin(xaml 代码)中创建半透明框架?
- automated-tests - 剧作家蟒蛇。- 如何检查元素是否隐藏
- angular - 我们如何在 ng-select 下拉菜单中集成 cdk Drag and Drop
- reactjs - MS Graph api 不返回响应并转到下一个方法
- r - 试图获得 R 中两个时间点之间的时间差。我在数据集中有 NA,我找不到正确的方法
- javascript - 什么是 window["foo"]=function() {alert("foo");}
- .net - 数据库用户权限与 where 参数
- nextflow - 缺少 nextflow 进程预期的输出文件
- python - 需要澄清 str.join() 方法的工作原理