redux-form-material-ui

A set of wrapper components to facilitate using Material UI with Redux Form

  • 所有者: erikras/redux-form-material-ui
  • 平台:
  • 许可证: MIT License
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图


redux-form-material-ui


NPM Version
NPM Downloads
Build Status
codecov.io
CDNJS version

For material-ui v1-beta support see 5.0 Documentation.

redux-form-material-ui is a set of
wrappers to facilitate the use of
material-ui components with
redux-form.


Live Demo :eyes:

Installation

Using npm:

  $ npm install --save redux-form-material-ui

Available Components

Usage

Rather than import your component class from material-ui, import it from redux-form-material-ui
and then pass the component class directly to the component prop of Field.

import { reduxForm, Field } from 'redux-form'
import MenuItem from 'material-ui/MenuItem'
import { RadioButton } from 'material-ui/RadioButton'
import {
  Checkbox,
  RadioButtonGroup,
  SelectField,
  TextField,
  Toggle,
  DatePicker
} from 'redux-form-material-ui'

class MyForm extends Component {
  render() {
    return (
      <form>
        <Field name="username" component={TextField} hintText="Street"/>

        <Field name="plan" component={SelectField} hintText="Select a plan">
          <MenuItem value="monthly" primaryText="Monthly"/>
          <MenuItem value="yearly" primaryText="Yearly"/>
          <MenuItem value="lifetime" primaryText="Lifetime"/>
        </Field>

        <Field name="agreeToTerms" component={Checkbox} label="Agree to terms?"/>

        <Field name="eventDate" component={DatePicker} format={null} hintText="What day is the event?"/>

        <Field name="receiveEmails" component={Toggle} label="Please spam me!"/>

        <Field name="bestFramework" component={RadioButtonGroup}>
          <RadioButton value="react" label="React"/>
          <RadioButton value="angular" label="Angular"/>
          <RadioButton value="ember" label="Ember"/>
        </Field>
      </form>
    )
  }
}

// Decorate with redux-form
MyForm = reduxForm({
  form: 'myForm'
})(MyForm)

export default MyForm

No Default Values

Because of the strict "controlled component" nature of redux-form,
some of the Material UI functionality related to defaulting of values has been disabled
e.g. defaultValue, defaultDate, defaultTime, defaultToggled, defaultChecked, etc.
If you need a field to be initialized to a certain state, you should use the initialValues
API of redux-form.

Instance API

getRenderedComponent()

Returns a reference to the Material UI component that has been rendered. This is useful for
calling instance methods on the Material UI components. For example, if you wanted to focus on
the username element when your form mounts, you could do:

componentWillMount() {
  this.refs.firstField      // the Field
    .getRenderedComponent() // on Field, returns ReduxFormMaterialUITextField
    .getRenderedComponent() // on ReduxFormMaterialUITextField, returns TextField
    .focus()                // on TextField
}

as long as you specified a ref and withRef on your Field component.

render() {
  return (
    <form>
      ...
      <Field name="username" component={TextField} withRef ref="firstField"/>
      ...
    </form>
  )
}

主要指标

概览
名称与所有者erikras/redux-form-material-ui
主编程语言JavaScript
编程语言JavaScript (语言数: 2)
平台
许可证MIT License
所有者活动
创建于2016-05-23 23:25:32
推送于2023-01-12 08:23:25
最后一次提交2018-04-07 12:48:19
发布数19
最新版本名称v5.0.0-beta-3 (发布于 )
第一版名称v1.0.0 (发布于 )
用户参与
星数832
关注者数18
派生数227
提交数82
已启用问题?
问题数226
打开的问题数55
拉请求数43
打开的拉请求数17
关闭的拉请求数22
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?