3秒演示https://www.youtube.com/watch?v=bo2nNQXbhI8&feature=youtu.be

https://gist.github.com/weichenghsu/407a8862f3382a425fb531b3dedcd6f5

作为标题,选择的选项将恢复为未选择状态


onChange方法对官方教程示例无效。

我的用例是当用户从下拉列表中选择一个值时。它应该触发一个操作以获取其他数据并在另一个表单上呈现

    const chooseTable = ({items, meta:{touched, error}}) => (
            <select
                onChange={event => {
                    console.log(this.props.fields);
                    this.props.tableNameOnChange(event.target.value);
          }}>
                <option value="">Select</option>
                {

                    items.map((item :any, i: integer) =>
                        <option key={item.id} value={item.id}>{item.name}</option>
                    )
                }
            </select>
    )

                    <Field component={chooseTable}
                           items={schemaData.tableList}
                           name="tableName"

                    >
                        {/*<option value="#ff0000">Red</option>*/}
                        {/*<option value="#00ff00">Green</option>*/}
                        {/*<option value="#0000ff">Blue</option>*/}
                    </Field>

            UIBuilderForm = reduxForm({
                form: 'dashbaordUiBuilderForm',
                fields: ['tableName']
            }
            })
            (UIBuilderForm as any);

            // Decorate with connect to read form values
            const selector = formValueSelector('dashbaordUiBuilderForm')

            // export default connect(mapStateToProps, mapDispatchToProps)(UIBuilderForm);
            export default connect(state => {
                const TableSchemaName = selector(state, 'TableSchemaName')
                return {
                    TableSchemaName
                }
            }

最佳答案

我正在用本机选择器敲打类似问题。尝试将“ chooseTable”作为组件而不是无状态函数编写,并使用“ this.state”和“ this.setState”引用选择的值。这是我的选择器代码中的一个示例:

class ExpirePicker extends React.Component {
  constructor(props) {
    super(props)

    this.state = {
      selected: 'ASAP'
    }
  }

  render() {
    const { input: { onChange, ...rest }} = this.props
    return (
      <Picker
        style={style.input}
        selectedValue={this.state.selected}
        onValueChange={(value) => {
          this.setState({selected: value})
          onChange(value)
        }}
        {...rest}>
        {Object.keys(ExpireTypes).map(renderItem)}
      </Picker>
    )
  }
}


您还可以使用元素的“ onChange”事件,而不将其绑定到redux形式的“ onChange”道具吗?

07-24 18:06
查看更多