Почему мои редактируемые входные данные не загружаются при обновлении/первой загрузке? МЕРН

#reactjs #react-redux #mern

Вопрос:

Когда эта страница загружается в первый раз или когда страница обновляется, любые редактируемые поля/входные данные (цена, результаты, конкретное лечение и т. Д.) Не загружают значение начального состояния. Они просто остаются пустыми. Поля, которые нельзя редактировать (дата, время, продолжительность и т.д.), Загружаются просто отлично. Есть какие-нибудь мысли о том, почему это может быть?

 import React, { useEffect, useState } from 'react' import { useDispatch, useSelector } from 'react-redux' import { useParams, useHistory } from 'react-router-dom' import { getAppointment, updateAppointment } from '../../../actions/appointment'  const AppointmentDetails = () =gt; {   const params = useParams()  const dispatch = useDispatch()  const history = useHistory()   useEffect(()=gt;{  dispatch(getAppointment(params?.id))  }, [dispatch, params.id])   const userState = useSelector((state)=gt;state?.usersReducer?.appointment)  const appointments = userState?.appointments?.find(({_id})=gt; _id === params?.id)   const [findings, setFindings] = useState(appointments?.findings ? (appointments?.findings) : (''))  const [generalTreatment, setGeneralTreatment] = useState(appointments?.treatment?.generalTreatment ? (appointments?.treatment?.generalTreatment) : (''))  const [specificTreatment, setSpecificTreatment] = useState(appointments?.treatment?.specificTreatment ? (appointments?.treatment?.specificTreatment) : (''))  const [subjectiveResults, setSubjectiveResults] = useState(appointments?.results?.subjectiveResults ? (appointments?.results?.subjectiveResults) : (''))  const [objectiveResults, setObjectiveResults] = useState(appointments?.results?.objectiveResults ? (appointments?.results?.objectiveResults) : (''))  const [remex, setRemex] = useState(appointments?.remex ? (appointments?.remex) : (''))  const [treatmentPlan, setTreatmentPlan] = useState(appointments?.treatmentPlan ? (appointments?.treatmentPlan) : (''))  const [paymentType, setPaymentType] = useState(appointments?.paymentType ? (appointments?.paymentType) : (''))  const [paid, setPaid] = useState(false)  const [price, setPrice] = useState(appointments?.price ? (appointments?.price) : (''))   const formData = {  paymentType,  findings,  treatment: {  generalTreatment,  specificTreatment  },  results: {  subjectiveResults,  objectiveResults,  },  remex,  treatmentPlan,  price  }   const clear = () =gt; {  setPaymentType('')  setFindings('')  setSpecificTreatment('')  setGeneralTreatment('')  setSubjectiveResults('')  setObjectiveResults('')  setRemex('')  setTreatmentPlan('')  setPrice('')  }   const handleSubmit = (e) =gt; {  e.preventDefault()  dispatch(updateAppointment(userState?._id, appointments?._id, formData))  history.push('/rmt/dashboard')  clear()   }   return (  !userState ? (  lt;divgt;  Loading  lt;/divgt;  ) : (  lt;divgt;  lt;h3gt;{userState.firstName} {userState.lastName}lt;/h3gt;  lt;table className="ui table"gt;  lt;theadgt;  lt;trgt;  lt;thgt;Datelt;/thgt;  lt;thgt;Timelt;/thgt;  lt;thgt;Durationlt;/thgt;  lt;thgt;Pricelt;/thgt;  lt;thgt;Payment typelt;/thgt;  lt;/trgt;  lt;/theadgt;  lt;tbodygt;  lt;trgt;  lt;tdgt;{appointments?.date}lt;/tdgt;  lt;tdgt;{appointments?.time}lt;/tdgt;  lt;tdgt;{appointments?.duration}lt;/tdgt;  lt;tdgt;  lt;div className="ui input"gt;  lt;input type="text" value={price} onChange={(e)=gt;setPrice(e.target.value)} /gt;  lt;/divgt;  lt;/tdgt;  lt;tdgt;  lt;select className="ui fluid dropdown" value={paymentType} onChange={(e)=gt;setPaymentType(e.target.value)}gt;  lt;option value='' disabled='disabled'gt;Select payment typelt;/optiongt;  lt;option value='unpaid'gt;Unpaidlt;/optiongt;  lt;option value='credit'gt;Credit cardlt;/optiongt;  lt;option value='debit'gt;Debitlt;/optiongt;  lt;option value='cash/etransfer'gt;Cash/e-transferlt;/optiongt;  lt;/selectgt;  {appointments?.paymentType === '' || 'unpaid' ? (  lt;divgt;  lt;input type='checkbox' value={paid} onChange={(e)=gt;setPaid(e.target.checked)} /gt;  lt;label style={{marginLeft: '10px'}}gt;payment received?lt;/labelgt;  lt;/divgt;  ) : (  lt;divgt;lt;/divgt;  )}  lt;/tdgt;  lt;/trgt;  lt;/tbodygt;  lt;/tablegt;  lt;table className="ui table"gt;  lt;theadgt;  lt;trgt;  lt;thgt;Reason for massagelt;/thgt;  lt;/trgt;  lt;/theadgt;  lt;tbodygt;  lt;trgt;  lt;tdgt;{appointments?.reasonForMassage}lt;/tdgt;  lt;/trgt;  lt;/tbodygt;  lt;/tablegt;  lt;table className="ui table"gt;  lt;theadgt;  lt;trgt;  lt;thgt;Consents givenlt;/thgt;  lt;thgt;Areas to avoidlt;/thgt;  lt;/trgt;  lt;/theadgt;  lt;tbodygt;  lt;trgt;  lt;tdgt;  {!appointments ? (  lt;divgt;No consent datalt;/divgt;  ) : (  lt;div className="ui list"gt;  {appointments?.consents?.glutes === true ? lt;div className="ui item" gt;Gluteslt;/divgt; : lt;divgt;lt;/divgt;}  {appointments?.consents?.chest === true ? lt;div className="ui item" gt;Chestlt;/divgt; : lt;divgt;lt;/divgt;}  {appointments?.consents?.innerThighs === true ? lt;div className="ui item" gt;Inner thighslt;/divgt; : lt;divgt;lt;/divgt;}  {appointments?.consents?.abdomen === true ? lt;div className="ui item" gt;Abdomenlt;/divgt; : lt;divgt;lt;/divgt;}  lt;/divgt;  )}  lt;/tdgt;  lt;tdgt;  {!appointments ? (  lt;divgt;No consent datalt;/divgt;  ) : (  lt;div className="ui list"gt;  {appointments?.consents?.glutes === false ? lt;div className="ui item" style={{color: 'red'}}gt;Gluteslt;/divgt; : lt;divgt;lt;/divgt;}  {appointments?.consents?.chest === false ? lt;div className="ui item" style={{color: 'red'}}gt;Chestlt;/divgt; : lt;divgt;lt;/divgt;}  {appointments?.consents?.innerThighs === false ? lt;div className="ui item" style={{color: 'red'}}gt;Inner thighslt;/divgt; : lt;divgt;lt;/divgt;}  {appointments?.consents?.abdomen === false ? lt;div className="ui item" style={{color: 'red'}}gt;Abdomenlt;/divgt; : lt;divgt;lt;/divgt;}  {appointments?.consents?.areasToAvoid ? lt;div className="ui item" style={{color: 'red'}}gt;{appointments?.consents?.areasToAvoid}lt;/divgt; : lt;divgt;lt;/divgt;}  lt;/divgt;  )}  lt;/tdgt;  lt;/trgt;  lt;/tbodygt;  lt;/tablegt;  lt;form className="ui form" onSubmit={handleSubmit}gt;  lt;divgt;  lt;labelgt;Findingslt;/labelgt;  lt;input type="text" value={findings} onChange={(e)=gt;setFindings(e.target.value)} /gt;  lt;/divgt;  lt;divgt;  lt;labelgt;Specific Treatmentlt;/labelgt;  lt;input type="text" value={specificTreatment} onChange={(e)=gt;setSpecificTreatment(e.target.value)} /gt;  lt;/divgt;  lt;divgt;  lt;labelgt;General Treatmentlt;/labelgt;  lt;input type="text" value={generalTreatment} onChange={(e)=gt;setGeneralTreatment(e.target.value)} /gt;  lt;/divgt;  lt;divgt;  lt;labelgt;Subjective Resultslt;/labelgt;  lt;input type="text" value={subjectiveResults} onChange={(e)=gt;setSubjectiveResults(e.target.value)} /gt;  lt;/divgt;  lt;divgt;  lt;labelgt;Objective Resultslt;/labelgt;  lt;input type="text" value={objectiveResults} onChange={(e)=gt;setObjectiveResults(e.target.value)} /gt;  lt;/divgt;  lt;divgt;  lt;labelgt;Remexlt;/labelgt;  lt;input type="text" value={remex} onChange={(e)=gt;setRemex(e.target.value)} /gt;  lt;/divgt;  lt;divgt;  lt;labelgt;Treatment Planlt;/labelgt;  lt;input type="text" value={treatmentPlan} onChange={(e)=gt;setTreatmentPlan(e.target.value)} /gt;  lt;/divgt;  lt;button type="submit" className="ui pink button" style={{marginTop: '10px', marginBottom: '20px'}}gt;Updatelt;/buttongt;  lt;/formgt;  lt;/divgt;  )  ) }  export default AppointmentDetails