我想要一个
的自定义输入组件1)有一个自动完成组件,允许选择"字段" -resource
2)选择"字段"根据所选的"字段"。
的类型填充另一个SelectInput我目前拥有的是:
const renderAutoComplete = ({ input, meta, ...rest }) => {
return (
<AutoComplete {...rest} />
)
}
render () {
return (
<div>
<div>
<Field
component={renderAutoComplete}
name={this.props.fieldSource}
hintText="Field"
dataSource={this.state.fields}
dataSourceConfig={{ text: 'title', value: 'id' }}
openOnFocus={true}
filter={AutoComplete.caseInsensitiveFilter}
onNewRequest={(chosen) => this.handleNewRequest(chosen)}
/>
</div>
<div>
<Field
component={SelectInput}
label="Type-dependent"
name={this.props.typeSource}
choices={this.state.availableChoices}
/>
</div>
</div>
)
}
就SelectInput的填充而言,这非常有用,如果我在创建表单中使用它,我也会获得带有请求的SelectInput发送的值。
不幸的是,虽然&#34;字段&#34; -value未包含在请求中。
我假设我需要一个真实的&#34; AutocompleteInput在这里。所以我做了以下事情:
<Field
component={AutocompleteInput}
name={this.props.fieldSource}
hintText="Feld"
choices={this.state.fields}
dataSourceConfig={{ text: 'title', value: 'id' }}
optionText="title"
optionValue="id"
filter={AutoComplete.caseInsensitiveFilter}
onNewRequest={(chosen) => this.handleNewRequest(chosen)}
/>
有了这个,我在请求中发送了&#34;字段&#34; -values,但onNewRequest
- 回调从未执行过。因此,另一个SelectInput没有收到我可以发送的任何值。
我查看了autocompleteInput文件所在的node_modules文件夹,根据它们,可以在此处使用此回调。
这是一个错误还是我在这里做错了什么?
关于wesley6j评论编辑:
<Field
name="field"
component={AutocompleteInput}
choices={choices}
optionText="title"
optionValue="id"
filter={AutoComplete.caseInsensitiveFilter}
options={{
onNewRequest: (chosen, index) => console.log(chosen)
}}
/>
...这会记录到控制台,但我的值未在请求中设置。您是否可以将我指向文档或源代码的正确部分,以清除我在此处必须做的事情?