如何在react中调用另一个组件中的一个组件
How do you call a component in another component in react?
我正在尝试制作一个表单,如果你按下一个按钮,你就会从另一个组件获得另一个表单。到目前为止没有运气
/**
* @jsx React.DOM
*/
'use strict';
var React = require('react');
//var CompetenceActions = require('../actions/CompetenceActions.js');
var Alert = require('react-bootstrap/Alert');
var ReactPropTypes = React.PropTypes;
var KeybehaviourComponent = require('./KeybehaviourComponent.js');
var CompetenceComponent = React.createClass({
/* jshint ignore:start */
render:function(){
return(
<div>
<div>
<p>
Competence Name: <input type='text' id='competencename' onChange={this._onChangeName} autoFocus={true}/><br/>
Competence Description: <input type='textarea' id='competencedescription' onChange={this._onChangeDescription}/>
</p>
</div>
<div>
<button onClick={this.addKeybehaviour}>Add Keybehaviour</button>
</div>
<div>
<p>
<button onClick={this.submitForm}>submit</button>
</p>
</div>
</div>
);
},
/* jshint ignore:end */
getInitialState:function(){
return ({
competenceName: '' ,
competenceDescription: ''
});
},
_onChangeName: function(/*object*/ event) {
this.setState({
competenceName: event.target.value
});
},
_onChangeDescription: function(/*object*/ event) {
this.setState({
competenceDescription: event.target.value
});
},
/* jshint ignore:start */
addKeybehaviour:function(){
return (
<div>
<KeybehaviourComponent/>
</div>
);
},
/* jshint ignore:end */
submitForm:function(){
console.log(this.state.competenceName);
console.log(this.state.competenceDescription);
//CompetenceActions.createCompetence(competenceName, comptenceDescription);
//this.setState({competenceNameValue: this.props.competenceName, competenceDescriptionValue: event.target.comptenceDescription});
}
});
module.exports = CompetenceComponent;
这是我的第一个组件,在这里我创建一个表单,呈现它,并在按下按钮时调用另一个表单""
/**
* @jsx React.DOM
*/
'use strict';
var React = require('react');
//var CompetenceActions = require('../actions/CompetenceActions.js');
var Alert = require('react-bootstrap/Alert');
var ReactPropTypes = React.PropTypes;
var KeybehaviourComponent = React.createClass({
/* jshint ignore:start */
render:function(){
return(
<div>
<div>
Keybehaviour Name: <input type='text' defaultValue='name' id='keybehaviourname' onChange={this._onChangeName} autoFocus={true}/>
</div>
<div>
Keybehaviour Description: <input type='text' defaultValue='description' id='keybehaviourdescription' onChange={this._onChangeDescription}/>
</div>
</div>
);
},
/* jshint ignore:end */
getInitialState:function(){
return ({
keybehaviourName: '' ,
keybehaviourDescription: ''
});
},
_onChangeName: function(/*object*/ event) {
this.setState({
keybehaviourName: event.target.value
});
},
_onChangeDescription: function(/*object*/ event) {
this.setState({
keybehaviourDescription: event.target.value
});
}
});
module.exports = KeybehaviourComponent;
这就是名为的组件
不能只在onClick中返回react组件。我会试着让你开始解决这个问题。您应该在addKeybehaviour
函数中执行以下操作:
var newAmount = this.state.currentAmount + 1;
this.setState({currentAmount: newAmount});
现在,在CompetenceComponent
的渲染函数中,尝试执行以下操作:
var keyboardComponents = [];
for (i = 0; i <= this.state.currentAmount; i++) {
keyboardComponents.push(<KeybehaviourComponent />)
}
现在只需将{keyboardComponents}放在返回函数中的某个位置即可。希望这能让你开始。
相关文章:
- 如何在react js中将值从一个组件发送到另一个组件
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- 聚合物是一个框架而不是一个库.如何模块化地使用web组件
- Angular2将组件方法导入到另一个组件中
- 有没有一个Nodejs库可以序列化和反序列化命名组件的路径(比如URL路径名)
- 如何向onClick事件处理程序传递一个接受参数的函数,并且仍然将该函数绑定到组件's”;这个“;上下文
- 如何在另一个组件中获取指令/组件实例
- Vue.js获取组件中的一个元素
- 制作一个高阶组件,用TypeScript实现反应中继和反应路由器的交互操作
- reactjs-redux,是否可以有一个由2个组件使用的状态
- 无法将react组件作为属性传递给另一个组件
- 在React中将方法从一个组件移动到另一个组件,并且仍然可以在原始组件中使用
- Angular 2,在没有直接关系的两个组件之间共享一个对象
- 在另一个文件夹中显示React组件
- 有没有一条清晰的路径,我可以实现一个在 ScalaJS + React 中广泛使用上下文的 React 组件
- 如何从一个组件访问另一个组件的状态
- 如何创建一个组件,我可以设置在 Angular 2 中的属性中获取 URL 数据
- 是否有一个 API 来控制火狐附加组件 SDK 中的下载
- Vue.js从另一个组件获取数据
- bind():您正在将一个组件方法绑定到该组件.React会自动为您执行此操作