如何在类组件外部创建数组或引用状态兄弟到下一个兄弟 React.js [英] How to create an array outside class component or reference state sibling to next sibling React.js
问题描述
我需要一个单选按钮的解决方案,但作为主数组的选项数组在类组件之外.在这种情况下,我将通过 props 获取 OPTIONS 数组项,但不会硬编码.我怎么可能
在类组件外传递 props
创建 OPTIONS 状态对象,然后将其传递给处于状态内的复选框.
import React, { Component } from "react";从./Checkbox"导入复选框;const OPTIONS = [一"、二"、三"];类 App 扩展组件 {状态 = {复选框:OPTIONS.reduce((选项,选项)=>({...选项,[选项]:假}),{})};selectAllCheckboxes = isSelected =>{Object.keys(this.state.checkboxes).forEach(checkbox => {//奖励:你能解释一下为什么我们将更新函数传递给 setState 而不是对象吗?this.setState(prevState => ({复选框:{...prevState.checkboxes,[复选框]:被选中}}));});};selectAll = () =>this.selectAllCheckboxes(true);取消全选 = () =>this.selectAllCheckboxes(false);handleCheckboxChange = changeEvent =>{const { name } = changeEvent.target;this.setState(prevState => ({复选框:{...prevState.checkboxes,[名称]: !prevState.checkboxes[名称]}}));};handleFormSubmit = formSubmitEvent =>{formSubmitEvent.preventDefault();Object.keys(this.state.checkboxes).filter(checkbox => this.state.checkboxes[checkbox]).forEach(复选框 => {console.log(复选框,被选中.");});};createCheckbox = 选项 =>(<复选框标签={选项}isSelected={this.state.checkboxes[option]}onCheckboxChange={this.handleCheckboxChange}键={选项}/>);createCheckboxes = () =>OPTIONS.map(this.createCheckbox);使成为() {返回 (<div className="容器"><div className="row mt-5"><div className="col-sm-12"><form onSubmit={this.handleFormSubmit}>{this.createCheckboxes()}<div className="form-group mt-2"><按钮类型=按钮"className="btn btn-outline-primary mr-2";onClick={this.selectAll}>全选按钮><按钮类型=按钮"className="btn btn-outline-primary mr-2";onClick={this.deselectAll}>取消全选按钮><按钮类型=提交"className=btn btn-primary">保存按钮>
</表单>