Таблица материалов с компонентом в качестве данных, не передающим контекст компонента в событии onChange - PullRequest
0 голосов
/ 05 ноября 2019

Я попытался добавить компонент как данные в таблицу материалов, но я не могу получить доступ к контексту «этого» компонента, чтобы обновить состояние в функции onChange. Редактируемая функция, представленная в таблице материалов, не соответствует моим требованиям.

class ClubList extends Component {
  state = { clubs: '', tableClubs: [] };

  changeDate=(change)=>{      
    console.log(this) //returns undefined.  I need to update state here but not able to access 'this' context of component
  }


  addClub = (event, clubs) => {
    let enteredClubs = this.state.clubs;
    let allClubs = this.props.clubs;
    let tableClubs = [];
    let enteredClubsArray = enteredClubs.split(/[ ,]+/);
    for (let clubs in enteredClubsArray) {
      tableClubs.push(allClubs.find(({ number }) => number == enteredClubsArray[clubs]));
    }
    tableClubs.map(
      (clubs) => (
        (clubs.scheduledDate = (        
          <DateComponent name="eventDate"
value={this.props.createData.eventDate} 
handleChange={this.changeDate} /> //Im calling the function here
        )),
        (clubs.city = clubs.city)
      )
    );
    this.setState({ clubs: '', tableClubs });
    this.clubsForCreate(tableClubs);
  };

  render() {
    return (
      <div className="clubSection">
            <TextComponent
              label="Enter Clubs"
              name="clubs"
              variant="outlined"
              handleChange={this.changeState}
              value={this.state.clubs}
            />
            <Fab color="primary" aria-label="add" onClick={this.addClub} className="clubAddButton">

        <MaterialTable
          title="Clubs"
          columns={[
            { title: 'Date', field: 'scheduledDate' },
            { title: 'Status', field: 'statusDesc' },

          ]}
          data={this.state.tableClubs}
        />
      </div>
    );
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...