¿Cómo se ejecuta un bloque de sentencias if, y el estado de actualización para cada uno en React nativa

Similoluwa Odeyemi:

En reaccionar nativo, tengo un selector para la selección de valores, Sí / No / Quizás, quiero comprobar si sí / no / quizá. He creado una función como esta, pero si se me acaba la función, a pesar de todo es que sí. El valor de riesgo sigue siendo 1

const [risk, setRisk]  = useState(0)

const check = () => {
    if(cough === 'Yes'){
    setRisk(risk+1)
  }

  if(fever ==='Yes'){
    setRisk(risk+1)
  }

  if(breathing ==='Yes'){
    setRisk(risk+1)
  }

  if(travel ==='Yes'){
    setRisk(risk+1)
  }

  if(gather ==='Yes'){
    setRisk(risk+1)
  }
  if(contact ==='Yes'){
    setRisk(risk+1)
  }

  if(neighbor ==='Yes'){
    setRisk(risk+1)
  }

  if(hospital ==='Yes'){
    setRisk(risk+1)
  }
  if(neighbor === 'Maybe'){
    setRisk(risk+0.5)
  }
  if(contact === 'Maybe'){
    setRisk(risk+0.5)
  }
  if(gather === 'Maybe'){
    setRisk(risk+0.5)
  }
  if(travel === 'Maybe'){
    setRisk(risk+0.5)
  }

  console.log('risk level is ' + risk)
}
segfault:

Puede que haya un "mejor" forma de hacer esto, pero se puede definir una newRiskal comienzo de su check()función y mutar ese valor. A continuación, establezca que en el extremo usando la función de gancho proporcionado.

Ejemplo:

const [risk, setRisk]  = useState(0)

const check = () => {
  let newRisk = risk;

  if(cough === 'Yes'){
    newRisk += 1;
  }

  if(fever ==='Yes'){
    newRisk += 1;
  }

  if(breathing ==='Yes'){
    newRisk += 1;
  }

  if(travel ==='Yes'){
    newRisk += 1;
  }

  if(gather ==='Yes'){
    newRisk += 1;
  }
  if(contact ==='Yes'){
    newRisk += 1;
  }

  if(neighbor ==='Yes'){
    newRisk += 1;
  }

  if(hospital ==='Yes'){
    newRisk += 1;
  }
  if(neighbor === 'Maybe'){
    newRisk += 0.5;
  }
  if(contact === 'Maybe'){
    newRisk += 0.5;
  }
  if(gather === 'Maybe'){
    newRisk += 0.5;
  }
  if(travel === 'Maybe'){
    newRisk += 0.5;
  }

  setRisk(newRisk);

  console.log('risk level is ' + newRisk)
}

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=407041&siteId=1
Recomendado
Clasificación