试图在另一个类的列表项中显示react select的数组元素。

问题描述 投票:0回答:0

我是一个新的反应,所以我可能会错过一些东西。

我正在使用react-select来存储多个元素,并使用map函数来显示元素,工作正常。但是当我在另一个类中使用相同的元素在列表元素中显示时,它显示为空白。

下面是我显示多个选项的代码。

const Departments = [
  { label: "OneIT", value: "OneIT" },
  { label: "HR", value: "HR" },
  { label: "Vigilance", value: "Vigilance" },
  { label: "Ethics", value: "Ethics" },
  { label: "Corporate Services", value: "Corporate Services" },
  { label: "Legal", value: "Legal" },
  { label: "Sports", value: "Sports" },
  { label: "TQM", value: "TQM" },
  { label: "Iron Making", value: "Iron Making" },
  { label: "TMH", value: "TMH" },
];

class MultiSelect2 extends Component {
  state = {
    selectedOptions: [],
  };
  handleChangeField = (selectedOptions) => {
    this.setState({ selectedOptions });
  };
  render() {
    const { selectedOption } = this.state;
    return (
      <div className="container">
        <div className="row">
          <div className="col-md-2"></div>
          <div className="col-md-8">
            <span>Select Department</span>
            <Select
              value={selectedOption}
              options={Departments}
              onChange={this.handleChangeField}
              isMulti
            />
            {this.state.selectedOptions.map((o) => (
              <p>{o.value}</p>
            ))}
          </div>
          <div className="col-md-4"></div>
        </div>
      </div>
    );
  }
}

我试图在另一个类中的列表项中显示这个元素,但它没有显示。

export class Confirm extends Component {
  state = {
    selectedOptions: [],
  };

  render() {
    const {
      values: { selectedOptions },
    } = this.props;
    return (
      <List>
        <ListItemText primary="Departments" secondary={selectedOptions} />
      </List>
    );
  }
}

我知道我可能遗漏了一些非常基本的东西,但请帮助我。

javascript reactjs react-redux material-ui react-select
0
投票

@Kubwimana Adrien

下面是代码的其余部分。

export class Confirm extends Component {
  state = {
    rows: [],
    idx: [],
    selectedOptions: []
  };

  continue = e => {
    e.preventDefault();
    //Process Form//
    this.props.nextStep();
  };

  back = e => {
    e.preventDefault();
    this.props.prevStep();
  };

  render() {
    const {
      values: {
        Title,
        Details,
        What,
        Why,
        How,
        Status,
        Cost,
        Benefits,
        Kpi_Before,
        Kpi_After,
        Time,
        dateTime,
        Base_Before,
        Target_Before,
        UOM_Before,
        idx,
        selectedOptions
      }
    } = this.props;

    return (
      <MuiThemeProvider theme={theme}>
        <React.Fragment>
          <div className={useStyles.root}>
            <AppBar position="static">
              <Toolbar>
                <Typography
                  gutterBottom
                  align="center"
                  style={{ width: "100%", alignItems: "center" }}
                >
                  Confirm Information
                </Typography>
              </Toolbar>
            </AppBar>
          </div>

          <br />
          <h3>Are you sure to continue and confirm your information?</h3>
          <List>
            <ListItemText primary="Departments" secondary={selectedOptions} />
            <ListItemText primary="Title" secondary={Title} />
            <ListItemText primary="Kpi_Before" secondary={Kpi_Before} />
          </List>
         <p> {this.state.selectedOptions.map(o => (
            <p>{o.value}</p>
          ))}</p>
          <br />
          <Button
            variant="contained"
            color="primary"
            style={styles.button}
            onClick={this.continue}
          >
            Confirm & Continue
          </Button>
          <Button
            variant="contained"
            color="default"
            style={styles.button}
            onClick={this.back}
          >
            Back
          </Button>
        </React.Fragment>
      </MuiThemeProvider>
    );
  }
}

const theme = createMuiTheme({
  palette: {
    primary: blue,
    secondary: purple
  },
  status: {
    danger: "orange"
  }
});
const styles = {
  button: {
    margin: 15
  }
};

export default Confirm;
© www.soinside.com 2019 - 2024. All rights reserved.