Как передать отображение электронной почты в DialogContentText в запрос на размещение ax ios - PullRequest
0 голосов
/ 12 июля 2020

Как я могу передать ratePlyrEmail в calculateAvgRating () во время нажатия кнопки отправки. Электронная почта игрока будет случайным образом отображаться в <Input type="hidden" name="playertorate" value={email} onChange={onChange}></Input> DialogContentText каждый раз, когда пользователь нажимает кнопку «Ввести рейтинг игрока». Я добавил onChange в DialogContentText. Теперь я получаю только rating и loginUserEmail на стороне сервера.

const [ratePlyrEmail, setRatePlyrEmail] = useState({ playertorate: ''});
 const [rating, setRating] = useState({
      shooting: "",
      dribbling: "",
      ballcontrol: "",
      sprinting: "",
      fitness: ""
    });
 const [ratingTotal, setRatingTotal] = useState(0);

 const onChange = e => {
    e.persist();
    const ratingValues = {
      ...rating,
      [e.target.name]: e.target.value
    };
    setRating(ratingValues);
    
    const rateEmailValue = {
      ...ratePlyrEmail,
      [e.target.name]: e.target.value
    }
    setRatePlyrEmail(rateEmailValue);
    ratingCalculation(ratingValues);

  };

  const ratingCalculation = ratingValues =>{
    const {
      shooting,
      dribbling,
      ballcontrol,
      sprinting,
      fitness
    } = ratingValues;
    const newTotal =
      Number(shooting) +
      Number(dribbling) +
      Number(ballcontrol) +
      Number(sprinting) +
      Number(fitness);
    const finalAvg = newTotal / 5;
    setRatingTotal(finalAvg);
    return ratingTotal ;
  }


   const calculateAvgRating = (rating) => {
    const sendPlayerRating = async () => {
      try {
      const params = {
      email: loginUserEmail,
      };
      const res = await axios.put('http://localhost:8000/service/playerrating', {ratingTotal:rating}, {params} );
      if (res.data.success) {

        //rest of code to continue here...
      }
      else {
        console.log(res.data.message); 
      }

      } catch (e) {
        console.log(e.response.data.message);
      }
    }
    sendPlayerRating();
  };

 
 <div className="container">
                        <div className="weeklycount_graph_section">
                            <div>
                              <Button className="playerRatingBtn" variant="outlined" color="primary" onClick={() => handleClickOpen(setRandPlayerRating())}>
                                Enter Player Rating
                              </Button>
                              <Dialog
                                open={open}
                                onClose={handleClose}
                                aria-labelledby="skills-area"
                              >
                              <DialogTitle id="skills-area">Rate the skills of a player</DialogTitle>
                                <DialogContent>
                                    {
                                      randPlayers.map(({email, name, photo}) =>(
                                        <DialogContentText key="id">
                                          <Avatar alt="player" src={photo}/>                                          
                                          <Input  type="hidden" name="playertorate" value={email} onChange={onChange}></Input>
                                        </DialogContentText>
                                      ))
                                    }
                                  <TextField
                                    autoFocus
                                    onChange={onChange}
                                    margin="dense"
                                    name="shooting"
                                    label="Shooting"
                                    type="text"
                                    fullWidth
                                  />
                                  <TextField
                                    autoFocus
                                    onChange={onChange}
                                    margin="dense"
                                    name="dribbling"
                                    label="Dribbling"
                                    type="text"
                                    fullWidth
                                  />
                                  <TextField
                                    autoFocus
                                    onChange={onChange}
                                    margin="dense"
                                    name="ballcontrol"
                                    label="Ball Control"
                                    type="text"
                                    fullWidth
                                  />
                                  <TextField
                                    autoFocus
                                    onChange={onChange}
                                    margin="dense"
                                    name="sprinting"
                                    label="Sprinting"
                                    type="text"
                                    fullWidth
                                  />
                                   <TextField
                                    autoFocus
                                    onChange={onChange}
                                    margin="dense"
                                    name="fitness"
                                    label="Fitness"
                                    type="text"
                                    fullWidth
                                  />
                                </DialogContent>
                                <DialogActions>
                                  <Button onClick={handleClose} color="secondary">
                                    Cancel
                                  </Button>
                                  <Button onClick={() => handleClose(calculateAvgRating((ratingCalculation(rating))))} color="primary">
                                    Submit
                                  </Button>
                                </DialogActions>
                              </Dialog>
                            </div>
                        </div>
                    </div>

введите описание изображения здесь

...