tutorial selectfield react reactjs redux material-ui redux-form

reactjs - selectfield - react ui



¿Usando material-ui con redux? (4)

Me gustaría referirte a este ejemplo .

Actualmente estoy renderizando el componente principal de esta manera:

ReactDOM.render( <Provider store = {store}> {getRoutes(checkAuth)} </Provider>, document.getElementById(''app'') )

los documentos indican el uso de MuiThemeProvider para envolver el componente de mi aplicación. Estoy utilizando a Provider para envolver, cualquier sugerencia sobre cómo usar material-ui en una aplicación de redux. Estoy tratando de agregar material-ui en un campo de forma redux como se muestra a continuación:

import React, { PropTypes } from ''react'' import {default as ReactModal} from ''react-modal'' import {Field, reduxForm} from ''redux-form'' import {TextField} from ''material-ui'' const customStyles = { overlay: { position: ''fixed'', top: 0, left: 0, right: 0, bottom: 0, backgroundColor: ''rgba(0, 0, 0, 0.55)'' }, content: { top: ''50%'', left: ''50%'', right: ''auto'', bottom: ''auto'', marginRight: ''-50%'', transform: ''translate(-50%, -50%)'' } } const modalForm = (props) => { // console.log(props) const { handleSubmit, pristine, reset, submitting } = props return ( <div> <button onClick= {props.openModal}>Duck</button> <ReactModal isOpen={props.isOpen} style={customStyles} onRequestClose={props.closeModal}> <h1>Compose New Duck</h1> <form onSubmit= {handleSubmit}> <label>duck</label> <Field name =''duck'' component = {(duck) => <TextField hintText = ''Enter Duck'' floatingLabelText = ''Enter Duck here'' {...duck} />} /> </form> <button onClick= {props.closeModal}>Close Modal...</button> </ReactModal> </div> ) } export default reduxForm({ form: ''duckModal'' // a unique identifier for this form })(modalForm)


Probé lo siguiente y funcionó:

const App = () => ( <MuiThemeProvider> <Provider store = {store}> {getRoutes(checkAuth)} </Provider> </MuiThemeProvider> ) ReactDOM.render( <App/>, document.getElementById(''app'') )


Probé lo siguiente y funcionó:

const App = () => ( <Provider store = {store}> <MuiThemeProvider> {getRoutes(checkAuth)} </MuiThemeProvider> </Provider> )


import React from ''react''; import { render } from ''react-dom''; import { Provider } from ''react-redux''; import MuiThemeProvider from ''@material-ui/core/styles/MuiThemeProvider''; import store from ''./store''; // wherever your store file is located import theme from ''./theme''; // wherever your theme file is located import Routes from ''./routes''; const App = () => ( <Provider store={store}> <MuiThemeProvider theme={theme}> <Routes /> </MuiThemeProvider> </Provider> ); render(<App />, document.getElementById(''app''));

En cuanto a los componentes en sí, si está utilizando withStyles, es posible que deba hacer algo como esto:

import React, { Component } from ''react''; import { connect } from ''react-redux''; import PropTypes from ''prop-types''; const styles = theme => ({ root: { color: ''#000'', } }); class SampleComponent extends Component { render() { const { classes, sample } = this.props; return <div className={classes.root}>{ sample }</div>; } } SampleComponent.defaultProps = { sample: ''Hello world'', }; SampleComponent.propTypes = { classes: PropTypes.object.isRequired, sample: PropTypes.string.isRequired, }; // This with connect is where the component is actually subscribing to the state const select = state => ({ sample: state.sample, }); export default connect(select)(withStyles(styles)(SampleComponent));