我试图让一个非常简单的反应应用程序启动并运行。Inter Components与React的通信
用例很简单: 一个自动完成的组件,它获取一个帐户名称数组,并在值更改后(用户选择了该值) - 将显示该帐户的fire事件。
这是一段代码,我试图以showAccount方法访问应用程序状态的方式获得工作。
如何从showAccount()
访问应用程序状态?
import React, { Component } from 'react';
import injectTapEventPlugin from 'react-tap-event-plugin';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
import AutoComplete from 'material-ui/AutoComplete';
// Needed for onTouchTap
// http://stackoverflow.com/a/34015469/988941
injectTapEventPlugin();
import './App.css';
class App extends Component {
constructor() {
super();
this.state = {accounts: []}
}
componentDidMount() {
this.setState({ accounts: [
{account_name: "foo", account_id: 1},
{account_name: "bar", account_id: 2}
]})
}
showAccount (value) {
// HERE IS THE PROBLEM!
// `this` points to AutoComplete rather than to App
console.log(this.state.accounts)
}
render() {
return (
<MuiThemeProvider>
<div className="App">
<center>
<AutoComplete
floatingLabelText="account name"
filter={AutoComplete.caseInsensitiveFilter}
dataSource={this.state.accounts.map((account) => account.account_name)}
onUpdateInput={this.showAccount}
/></center>
</div>
</MuiThemeProvider>
);
}
}
export default App;
{this.showAccount.bind(this)} –
@AMacdonald谢谢!! 你会将它设置为答案,以便我可以投票吗? –
yay - 只是做了 –