3 回答

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
valueField
textField
DropdownList
簡短回答
家長:
<div className="col-sm-9" > <SelectLanguage onSelectLanguage={this.handleLanguage}/> </div>
兒童:
handleLangChange = () => { var lang = this.dropdown.value; this.props.onSelectLanguage(lang); }
詳細(xì)說明:
編輯:
React.Component
class ParentComponent extends React.Component{ state: { language: '' } handleLanguage = (langValue) => { this.setState({language: langValue}); } render() { return ( <div className="col-sm-9" > <SelectLanguage onSelectLanguage={this.handleLanguage}/> </div> ) }}
var json = require("json!../languages.json");var jsonArray = json.languages;export class SelectLanguage extends React.Component { state = { selectedCode: '', selectedLanguage: jsonArray[0], } handleLangChange = () => { var lang = this.dropdown.value; this.props.onSelectLanguage(lang); } render() { return ( <div > <DropdownList ref={(ref) => this.dropdown = ref} data={jsonArray} valueField='lang' textField='lang' caseSensitive={false} minLength={3} filter='contains' onChange={this.handleLangChange} /> </div> ); }}
createClass
const ParentComponent = React.createClass({ getInitialState() { return { language: '', }; }, handleLanguage: function(langValue) { this.setState({language: langValue}); }, render() { return ( <div className="col-sm-9" > <SelectLanguage onSelectLanguage={this.handleLanguage}/> </div> );});
兒童
var json = require("json!../languages.json");var jsonArray = json.languages;export const SelectLanguage = React.createClass({ getInitialState: function(){ return{ selectedCode: '', selectedLanguage: jsonArray[0], }; }, handleLangChange: function () { var lang = this.refs.dropdown.value; this.props.onSelectLanguage(lang); }, render() { return ( <div > <DropdownList ref='dropdown' data={jsonArray} valueField='lang' textField='lang' caseSensitive={false} minLength={3} filter='contains' onChange={this.handleLangChange} /> </div> ); }});
杰森:
{ "languages":[ { "code": "aaa", "lang": "english" }, { "code": "aab", "lang": "Swedish" }, ] }

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
將數(shù)據(jù)從子組件傳遞到父組件
getData(val){ // do not forget to bind getData in constructor console.log(val);}render(){ return(<Child sendData={this.getData}/>);}
demoMethod(){ this.props.sendData(value); }

TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個(gè)贊
class ParentComponent extends Component{ onSubmit(data) { let mapPoint = this.getMapPoint(); } render(){ return ( <form onSubmit={this.onSubmit.bind(this)}> <ChildComponent getCurrentPoint={getMapPoint => {this.getMapPoint = getMapPoint}} /> <input type="submit" value="Submit" /> </form> ) }}
class ChildComponent extends Component{ constructor(props){ super(props); if (props.getCurrentPoint){ props.getCurrentPoint(this.getMapPoint.bind(this)); } } getMapPoint(){ return this.Point; }}
添加回答
舉報(bào)