Как установить и получить значение поля приставки - PullRequest
1 голос
/ 06 апреля 2019

Я хочу изменить значение поля redux-form. Я создаю приложение реакции-администратора. Я проверил другие вопросы и ответы, но ничего не смогло решить мою проблему.

export class MapInput extends React.Component {
    constructor(props) {
        super(props);
    }

    handleChange(value) {
        // Here, I want to change the value of the fields (latitude and longitude)
    }

    render() {
        var { value } = this.state;
        return (
            <div style={{marginTop: 15}}>
                <TitleText text="Address" />
                <MapView
                    draggable={true}
                    zoom={DefaultZoom}
                    position={/* Also here, I need to get values from the fields as {lat: .., lng: ...} */}
                    onChange={this.handleChange.bind(this)} />

                <Field
                    component={renderTextField}
                    name="latitude" type="number"
                    value={value.lat}
                    {...rest} />
                <span>&nbsp;<code>x</code>&nbsp;</span>
                <Field
                    component={renderTextField}
                    name="longitude"
                    type="number"
                    value={value.lng}
                    {...rest} />
            </div>
        );
    }
}

1 Ответ

1 голос
/ 06 апреля 2019

Вы можете обратиться к этому «Примеру выбора значений формы»

Ваш код должен выглядеть примерно так, если вы хотите получить доступ к значениям формы:

import { Field, reduxForm, formValueSelector } from 'redux-form'
import { compose } from 'redux'
import { connect } from 'react-redux'

class MapInput extends React.Component {
  constructor(props) {
    super(props)
  }

  handleChange = () => {
    // latitude and longitude are now in props
    console.log(this.props.latitude)
    console.log(this.props.longitude)
  }

  render() {
    const { value } = this.state
    const { latitude, longitude } = this.props
    return (
      <div style={{ marginTop: 15 }}>
        <TitleText text="Address" />
        <MapView
          draggable={true}
          zoom={DefaultZoom}
          position={{
            lat: latitude,
            lng: longitude
          }}
          onChange={this.handleChange}
        />

        <Field
          component={renderTextField}
          name="latitude"
          type="number"
          value={value.lat}
          {...rest}
        />
        <span>
          &nbsp;<code>x</code>&nbsp;
        </span>
        <Field
          component={renderTextField}
          name="longitude"
          type="number"
          value={value.lng}
          {...rest}
        />
      </div>
    )
  }
}

const selector = formValueSelector('formName')

export default compose(
  connect(state => {
    const { latitude, longitude } = selector(state, 'latitude', 'longitude')
    return {
      latitude,
      longitude
    }
  }),
  reduxForm({ form: 'formName' })
)(MapInput)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...