2016-06-24 1 views
0

Im использование реакции и материала ui. Это мой компонентРеакция и установкаСтатус и автозаполнение

`` `

import React from 'react'; 


import lightBaseTheme from 'material-ui/styles/baseThemes/lightBaseTheme'; 

import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; 
import getMuiTheme from 'material-ui/styles/getMuiTheme'; 
import AutoComplete from 'material-ui/AutoComplete'; 
// the light theme 
const lightMuiTheme = getMuiTheme(lightBaseTheme); 

// the autocomplete component width 
const Preferencestypeahead = { 
maxWidth: 600, 
position:'relative', 
margin:'auto' 
} 


export default class Preferences extends React.Component { 


constructor(props) { 
super(props); 
this.handleUpdateInput = this.handleUpdateInput.bind(); 
this.state = { 
    dataSource: [], 
}; 
} 

handleUpdateInput(value){ 
this.setState({ 
    dataSource: [ 
    value, 
    value + value, 
    value + value + value, 
    ], 
}); 
}; 

render() { 
return (


    <div> 
     <MuiThemeProvider muiTheme={lightMuiTheme}> 

        <section style={Preferencestypeahead}> 
          <AutoComplete 
           hintText="Type" 
           dataSource={this.state.dataSource} 
           onUpdateInput={this.handleUpdateInput.bind(this)} 
           floatingLabelText="Search" 
           fullWidth={true} 
          />       
        </section> 

     </MuiThemeProvider> 
    </div> 

    ) 

    } 
    } 

Я получаю SetState не определен, когда я печатаю что-либо внутри автозаполнения. Где я могу ошибиться? Я также столкнулся с этой проблемой, когда я пытался импортировать вкладки, а также

+0

должен быть 'this.handleUpdateInput.bind (это);' –

ответ

1

Вам нужно связываться с «this»

Эта линия проблема:

this.handleUpdateInput = this.handleUpdateInput.bind(); 

Изменить это:

this.handleUpdateInput = this.handleUpdateInput.bind(this); 
0

Поскольку вы уже используете ES6 вы можете просто сделать

... 
onUpdateInput={(val) => this.handleUpdateInput(val)} 
... 

, то вам не нужно делать это ->this.handleUpdateInput = this.handleUpdateInput.bind(this); в конструкторе

Смежные вопросы