Ant-design: ¿Cuáles son los parámetros del método Form setFieldsValue? Paso un objeto y la ejecución falla en componentWillReceiveProps

Creado en 9 sept. 2016  ·  16Comentarios  ·  Fuente: ant-design/ant-design

  • versión antd: 1.11.0
  • Sistema operativo y su versión: MAC 10.11.6 Memoria 16G CPU i7
  • Navegador y su versión: CHROME

Haga clic en un botón de edición para completar el formulario con los datos existentes.

Cuando se hace clic en el botón, el estado de actualización es el estado de edición,
Llame al método setFieldsValue en componentWillReceiveProps. Después de aproximadamente un minuto, se completa el formulario.
Luego hago clic en cualquier Entrada y continúo esperando aproximadamente 1 minuto.

Comentario más útil

Este formulario es realmente difícil de usar, y el costo de usarlo después del empaque es demasiado alto.

Todos 16 comentarios

La esencia de setFieldsValue es llamar a setState del envoltorio externo e indirectamente llamar a componentWillReceiveProps , por lo que es un ciclo infinito.

Utilice mapPropsToFields http://ant.design/components/form/#Form.create (opciones)

@benjycui gracias

mapPropsToFields convierte los accesorios en los valores correspondientes, que se pueden usar para leer los valores en la tienda Redux
Función (accesorios): Objeto{ fieldName: Objeto{ valor } }
No veo cómo quiero escribir en mapPropsToFields

Hola, ¿hay alguna forma de traducir esta conversación?

@bnlambert ¿Cuál es tu pregunta?

Deseo ver cómo establecer valores iniciales con setFieldsValue .

También mi calendario selector de fechas aparece en chino; como lo rectifico?

puedes probar moment.locale('en');

https://ant.design/components/date-picker/doc

¿Necesito un momento de 'antd' o necesito descargarlo por separado?
Por favor, sea un poco más explícito. Gracias

En su sitio web, hay esta nota para 'setFieldsValue'

please don't use it in componentWillReceiveProps, otherwise, it will cause an endless loop, more)

Se vincula a esta página por lo que supongo que es una explicación. ¿Podríamos obtener algún tipo de traducción si es posible?

gracias

@coljung prueba el traductor de Google.

@bnlambert @coljung o si está en Chrome, haga clic derecho -> traducir al inglés

Puedo entender que algunos problemas se escribieron en chino para una comunicación conveniente/más rápida entre los mantenedores, pero este se menciona en la documentación oficial, es "parte de él", por lo que debe traducirse.
Alternativa: la información escrita aquí debe incluirse en la documentación oficial.

@benjycui En mi opinión, "pruebe el traductor de Google" no es un comentario constructivo e infringe algunas reglas de conducta mencionadas en CODE_OF_CONDUCT.md

  • Usar un lenguaje acogedor e inclusivo
  • Ser respetuoso con los diferentes puntos de vista y experiencias.
  • Aceptar con gracia la crítica constructiva
  • Centrarse en lo que es mejor para la comunidad.
  • Mostrar empatía hacia otros miembros de la comunidad.

Para las 9 personas que reaccionaron con ":smile:": obviamente son bilingües, ¿cuánto tiempo les hubiera llevado Google Translate el contenido, ajustar la traducción si fuera necesario gracias a sus habilidades lingüísticas y pegar el contenido aquí?

Habiendo dicho eso:

  1. el OP describe el problema: llamar a setFieldsValue en componentWillReceivedProps provoca un bucle que finalmente se detiene después de 1 minuto. Cada cambio de campo provoca un nuevo bucle "infinito".
  2. el mantenedor respondió que setFieldsValue conduce a un this.setState en el HOC, por lo que cambia los accesorios y hace que se llame directamente a su método componentWillReceiveProps . Por eso hay un bucle. Deberíamos usar mapPropsToFields .
  3. el OP agradece al mantenedor
  4. Se hace otra pregunta (sin respuesta). mapPropsToFields se usa para leer datos de la tienda, ¿cómo puedo escribir en él?

Este formulario es realmente difícil de usar, y el costo de usarlo después del empaque es demasiado alto.

mapPropsToFields y cargar conflicto cargar restablecerá el formulario

¿Fue útil esta página
0 / 5 - 0 calificaciones