Реагирует на передачу объекта в модальный, затем устанавливает состояние объекта для этого объекта

#reactjs #bootstrap-modal

#reactjs #bootstrap-модальный

Вопрос:

У меня есть некоторый код, в котором я устанавливаю состояние объекта для EMPMODAL. Позже я передаю prop модальному, затем в модальном мне нужно установить состояние объекта для этого объекта. Я не могу правильно понять синтаксис. Ниже приведен пример того, как он выглядит. Я сократил код, чтобы он не был точным. Но я думаю, что это та часть, где я устанавливаю состояние в конструкторе. Я думаю, поскольку я пытаюсь установить его на объект, у меня неправильный синтаксис. Спасибо за любую помощь.

 
        const formEmpModal = {
          firstname: emp.firstname,
          lastname: emp.lastname,
        };
        this.setState({
          formEmpModal: formEmpModal 
});

console.log(formEmModal): //THIS DOES LOG THE OBJECT SO IT IS SETTING STATE CORRECTLY


<EmployeeDetailModal
formEmpModal = {this.state.formEmpModal}  // PASSING THE OBJECT TO THE MODAL
/>


export class EmployeeDetailModal extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      formEmpModal: this.props.formEmpModal 
};};


console.log(this.props.formEmpModal.firstname) //THIS IS SAYING ITS UNDEFINED

  

Комментарии:

1. в вашем конструкторе попробуйте удалить… prevstate. и сохраняйте только this.props.formEmpModal вы также можете попробовать console.log(this.props), чтобы убедиться, что вы получаете правильные реквизиты

Ответ №1:

Вы передаете состояние неправильному компоненту

 <Modal
formEmpModal = {this.state.formEmpModal}  // PASSING THE OBJECT TO THE MODAL
/>
  

в то время как на другом конце получает его от компонента EmployeeDetailModal

Правильный способ

 <EmployeeDetailModal
formEmpModal = {this.state.formEmpModal}  // PASSING THE OBJECT TO THE MODAL
/>
  

Комментарии:

1. привет, Фахад, мои извинения в моем фактическом коде, у меня все правильно. Также у меня есть this.props.formEmpModal в EmployeeDetailModal. Это все еще не работает, я думаю, это потому, что в модальном описании сотрудника, когда я указываю объект, синтаксис неверен, даже если класс экспорта EmployeeDetailModal расширяет React. Компонент { конструктор(реквизит) { супер(реквизит); this.state = { formEmpModal: {this.props.formEmpModal } };};