A documentação diz que _component_ é passado para beginDrag (3º parâmetro), no entanto, parece ser nulo quando chamado? Não tenho certeza se é algo que estou fazendo errado. Se ajudar, meu componente é tanto uma fonte quanto um destino para arrastar.
O que eu quero fazer é obter a altura do meu componente dentro do beginDrag, isso não é algo que eu possa derivar dos adereços passados, então preciso acessar o componente.
Acontece que o problema é que o DnD não gosta de componentes sem estado :(
eu mudei
const SortableListItem = (props) => {
para
class SortableListItem extends Component {
e _component_ agora é passado corretamente para beginDrag. Vale a pena mencionar que o componente sem estado funcionou conforme o esperado, então fiquei bastante confuso porque _component_ é nulo em beginDrag.
Pode valer a pena atualizar a documentação do beginDrag para indicar que o DnD não funciona com componentes sem estado (assumindo que isso não pode ser corrigido).
Ufa, acabei de perder alguns ciclos com isso também (exceto com o retorno de chamada hover()
). Muito obrigado por postar isso ... Eu não tinha ideia de onde procurar em seguida.
Também me deparei com isso agora - suspeito que o problema é que os componentes sem estado não têm instância pública . O React-dnd pode precisar ajustar como eles usam refs, já que receiveComponent
é chamado com null
Isso apenas aconteceu comigo ao atualizar react-redux
, e DragSource
envolvendo um componente connect
ed diretamente.
Solução alternativa: mudou a ordem de DragSoruce e conectar. : - /
Este problema foi marcado automaticamente como obsoleto porque não teve atividades recentes. Ele será fechado se nenhuma outra atividade ocorrer. Obrigado por suas contribuições.
Comentários muito úteis
Acontece que o problema é que o DnD não gosta de componentes sem estado :(
eu mudei
const SortableListItem = (props) => {
para
class SortableListItem extends Component {
e _component_ agora é passado corretamente para beginDrag. Vale a pena mencionar que o componente sem estado funcionou conforme o esperado, então fiquei bastante confuso porque _component_ é nulo em beginDrag.
Pode valer a pena atualizar a documentação do beginDrag para indicar que o DnD não funciona com componentes sem estado (assumindo que isso não pode ser corrigido).