Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

186
Views
checkbox doesnot change value accoding to data , all dates showing same value for checkbox react js

when i change the date using input date filed the checkbox value has to change respect to the date but here every date is showing the same value for check box i have given the entire working code i have tryed in the codesandbox

<div>
  <input type="date" onChange={this.dateHandler} />
</div>

 {this.state.items.map((personData) => {
                return (
                  <>
                    {" "}
                    <div className="activity">
                      <div className="inneractivity" style={styles.gridstyle}>
                        <div style={styles.txt}>
                          <h5>{personData.mainModule}</h5></div>

                        <div style={{ padding: "10px" }}>
                          <div
                            className="aflex-inner"
                            style={styles.gridstyleinner}
                          >
                            {personData.sub_module.map((subModule, key) => {
                              return (
                                <div key={subModule.id}>
                                  <p style={styles.pstyle}>
                                    {" "}
                                    {subModule.subModuleName}
                                  </p>
                                  <input
                                    type="checkbox"
                                    data-id={subModule.id}
                                    onChange={(e) =>
                                      this.handleCheckClick(e, "items", key)
                                    }
                                    defaultChecked={
                                      subModule.completed && subModule
                                    }
                                
                                  />
                                </div>
                              );
                            })}
                          </div>
                        </div>
                      </div>
                    </div>
                  </>
                );
              })}

entire working code

https://codesandbox.io/s/snowy-firefly-rs78v?file=/src/App.js

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Thank you for sharing such a complete reproduction!

I'm not sure how the logic should work here in detail--I assume that when clicking the checkbox, the post request saves data to the server, which then gets re-requested later. When it's re-requested, it should have the correct value in the completed field for sub_modules.

I can spot one issue relating to this behaviour:

prevState[index].completed = e.target.checked;

The prevState is an array of personData. Hence with prevState[index] you are finding a personData item. If I understood correctly, you want to find a sub_module.

This could be done like so

prevState[<personDataIndex>].sub_module[<subModuleIndex>].completed

In your render function you are looping in this fashion

this.state.items.map((personData) => (
   // ...
   {personData.sub_modules.map((subModule, key) => (
       // ...
       <input onChange={(e) => this.handle(e, "items", key)} />
       // ...
   ))}
))

Attempt to provide index values for both of the arrays you are looping

this.state.items.map((personData, i) => (
   personData.sub_modules.map((subModule, j) => (
       <input onChange={(e) => this.handleCheckClick(e, "items", i, j)} />
   ))
))

And then in the handleCheckClick handler set completed like so

prevState[i].sub_module[j].completed = e.target.checked

Also consider using checked instead of defaultChecked because the input is controlled

<input type="checkbox" checked={subModule.checked} />

Another issue with your example was that you were not passing the date when you requested the data, but someone else or you yourself already fixed this issue.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!