我是React js的新手。任何人都可以告诉我,如何将复选框的值抓取到包含文本字段的另一个组件中?我在checkedBox
的控制台中获得了这些值。我尝试了https://jsfiddle.net/r7dm7wo0/ MenuList.js
const items = [
'one',
'two',
'three'
];
class MenuList extends React.Component {
componentWillMount () {
this.selectedCheckboxes = new Set();
}
toggleCheckbox = (label) => {
if (this.selectedCheckboxes.has(label)) {
this.selectedCheckboxes.delete(label);
} else {
this.selectedCheckboxes.add(label);
}
}
handleFormSubmit = (formSubmitEvent) => {
formSubmitEvent.preventDefault();
var checkedBox = new Set([...this.selectedCheckboxes].map(function(item){
return(item);
}));
console.log(checkedBox)
<MenuItem items={this.checkedBox}/>
}
createCheckbox = (label) => (
<Checkbox
label={label}
handleCheckboxChange={this.toggleCheckbox}
key={label}
/>
)
createCheckboxes = () => (
items.map(this.createCheckbox)
)
render() {
return (
<div className="background">
<div className="checkboxForm">
<div className=" col-lg-12">
<div className="col-lg-6 floatLeft">
<form onSubmit={this.handleFormSubmit}>
{this.createCheckboxes()}
<button className="btn btn-default" type="submit">Save</button>
</form>
</div>
</div>
</div>
</div>
)
}
}
MenuItem.js
class MenuItem extends React.Component {
render() {
const { items } = this.props
return(
<div>
<textarea>{items}</textarea>
</div>
)
}
}
MenuItem.propTypes = {
checkbox: PropTypes.string
}
index.js
ReactDOM.render(
<Router history={hashHistory}>
<Route path="/" component={IndexPage}/>
<Route path="login" component={LoginForm}/>
<Route path="menu-list" component={MenuList}/>
<Route path="menu-item" component={MenuItem}/>
</Router>
);
答案 0 :(得分:0)
如果您有通过多个页面共享的数据,则必须将信息保存在某处。你可以保存它:
在您的情况下,我认为您需要一个应用程序状态。我建议您使用Redux的works fine with React。
稍后,您将能够从服务器加载数据并填写应用程序状态,以使您的所有页面都可以访问已加载的信息。
如果您拥有通过同一页面中的多个组件共享的数据,则需要使用React state。