Ant-design: Quais são os parâmetros do método Form setFieldsValue, passo em um objeto e a execução trava em componentWillReceiveProps

Criado em 9 set. 2016  ·  16Comentários  ·  Fonte: ant-design/ant-design

  • versão antd: 1.11.0
  • Sistema operacional e sua versão: MAC 10.11.6 Memória 16G CPU i7
  • Navegador e sua versão: CHROME

Clique em um botão de edição para preencher o formulário com dados existentes.

Quando o botão é clicado, o estado de atualização é o estado de edição,
Chame o método setFieldsValue em componentWillReceiveProps. Após cerca de um minuto ou mais, o formulário é preenchido.
Então eu clico em qualquer entrada e continuo esperando por cerca de 1 minuto.

Comentários muito úteis

Este formulário é realmente difícil de usar e o custo de usá-lo após a embalagem é muito alto

Todos 16 comentários

A essência de setFieldsValue é chamar setState do wrapper externo e, indiretamente, chamar componentWillReceiveProps , então é um loop infinito.

Por favor, use mapPropsToFields http://ant.design/components/form/#Form.create (opções)

@benjycui obrigado

mapPropsToFields converte props em valores correspondentes, que podem ser usados ​​para ler os valores na loja Redux
Function(props): Object{ fieldName: Object{ value } }
Não vejo como quero escrever em mapPropsToFields

Oi, existe uma maneira de traduzir esta conversão?

@bnlambert Qual é a sua pergunta

Eu gostaria de ver como definir valores iniciais com setFieldsValue .

Também meu calendário do datepicker está aparecendo em chinês; como faço para corrigir?

você pode tentar moment.locale('en');

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

Preciso de um momento de 'antd' ou preciso baixá-lo separadamente?.
Por favor, seja um pouco mais explícito. Obrigado

Em seu site, há esta nota para 'setFieldsValue'

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

Ele liga a esta página para o que eu suponho que seja uma explicação. Poderíamos obter algum tipo de tradução, se possível?

THX

@coljung tente o tradutor do Google.

@bnlambert @coljung ou se você estiver no chrome, clique com o botão direito do mouse -> traduzir para inglês

Eu posso entender que alguns problemas foram escritos em chinês para uma comunicação conveniente/mais rápida entre os mantenedores, mas este é referenciado na documentação oficial, é "parte dele" por isso deve ser traduzido.
Alternativa: as informações aqui escritas devem constar na documentação oficial.

@benjycui IMO "experimente o tradutor do Google" não é um comentário construtivo e viola algumas regras de conduta mencionadas em CODE_OF_CONDUCT.md

  • Usando uma linguagem acolhedora e inclusiva
  • Ser respeitoso com diferentes pontos de vista e experiências
  • Aceitar críticas construtivas com elegância
  • Foco no que é melhor para a comunidade
  • Mostrar empatia para com outros membros da comunidade

Para as 9 pessoas que reagiram com ":smile:": você obviamente é bilíngue, quanto tempo levaria para Google Translate o conteúdo, ajuste a tradução se necessário graças às suas habilidades linguísticas e cole o conteúdo aqui ?

Dito isso:

  1. o OP descreve o problema: Chamar setFieldsValue em componentWillReceivedProps causa um loop que eventualmente para após 1 minuto. Cada mudança de campo causa um novo loop "infinito".
  2. o mantenedor respondeu que setFieldsValue leva a um this.setState no HOC, então ele muda props e faz com que seu método componentWillReceiveProps seja chamado diretamente. É por isso que existe um loop. Devemos usar mapPropsToFields .
  3. o OP agradece ao mantenedor
  4. Uma outra pergunta (sem resposta) é feita. mapPropsToFields é usado para ler dados da loja, como posso escrever nele?

Este formulário é realmente difícil de usar e o custo de usá-lo após a embalagem é muito alto

mapPropsToFields e upload de conflito de upload irão redefinir o formulário

Esta página foi útil?
0 / 5 - 0 avaliações