Tengo problemas para actualizar el estado de la casilla de verificación después de asignarlo con el valor predeterminado checked="checked"
en React.
var rCheck = React.createElement('input',
{type: 'checkbox', checked:'checked', value: true},
'Check here');
Después de asignar checked="checked"
, no puedo interactuar el estado de la casilla haciendo clic para desmarcar / marcar.
Respuestas:
Para interactuar con el cuadro, debe actualizar el estado de la casilla de verificación una vez que lo cambie. Y para tener una configuración predeterminada que puede usar
defaultChecked
.Un ejemplo:
fuente
render
con el<input>
elemento anterior . EldefaultChecked
puede proporcionarse como un parámetro comochecked
es.Hay algunas maneras de lograr esto, aquí hay algunas:
Escrito usando ganchos de estado :
Aquí hay una demostración en vivo en JSBin .
Escrito usando componentes :
Aquí hay una demostración en vivo en JSBin .
fuente
Si la casilla de verificación se crea solo con,
React.createElement
entoncesdefaultChecked
se usa la propiedad .Crédito a @nash_ag
fuente
O
Consulte más detalles sobre la
defaultChecked
casilla de verificación a continuación: https://reactjs.org/docs/uncontrolled-components.html#default-valuesfuente
Además de la respuesta correcta, simplemente puede hacer: P
fuente
checked
.Esta trabajando
Y la función init it
fuente
Puede pasar "verdadero" o "" a la propiedad marcada de la casilla de entrada. Las comillas vacías ("") se entenderán como falsas y el elemento estará desmarcado.
fuente
true
para el atributo booleanochecked
. Aunque esto funciona, no funcionará como se espera si pasa la cadena" falso ". ¿Quiso decir? marcado = {verdadero}? "En mi caso, sentí que "defaultChecked" no funcionaba correctamente con estados / condiciones. Así que usé "marcado" con "onChange" para alternar el estado.
P.ej.
fuente
Aquí hay un código que hice hace algún tiempo, podría ser útil. tienes que jugar con esta línea => this.state = {marcado: falso, marcado2: verdadero};
CSS
HTML
Aquí está el codepen => http://codepen.io/parlop/pen/EKmaWM
fuente
No lo hagas demasiado difícil. Primero, comprenda un ejemplo simple dado a continuación. Te quedará claro. En este caso, justo después de presionar la casilla de verificación, tomaremos el valor del estado (inicialmente es falso), lo cambiaremos a otro valor (inicialmente es verdadero) y estableceremos el estado en consecuencia. Si se presiona la casilla de verificación por segunda vez, volverá a realizar el mismo proceso. Agarrando el valor (ahora es verdadero), cámbielo (a falso) y luego establezca el estado en consecuencia (ahora es falso nuevamente. El código se comparte a continuación.
Parte 1
Parte 2
Parte 3
fuente
esto se puede hacer con js puro
fuente
el controlador anterior le da el valor de verdadero o falso al marcar o no
fuente
Establezco el estado como cualquier tipo []. y en el constructor establece el estado en nulo.
En el elemento de entrada
this.onServiceChange (e)} /> this.onServiceChange (e)} /> this.onServiceChange (e)} /> this.onServiceChange (e)} />
Lo descubrí después de un tiempo. Pensé que podría ayudarlos a todos :)
fuente