React-dnd: Anidamiento y propiedad de los backends de React DnD

Creado en 17 ago. 2015  ·  7Comentarios  ·  Fuente: react-dnd/react-dnd

¿Hay un identificador para backends / DragDropContext ya establecidos? Estoy usando su código del n. ° 186:

let defaultManager;
function getDefaultManager() {
    if (!defaultManager) {
        defaultManager = new DragDropManager(HTML5Backend);
    }
    return defaultManager;
}

Pero, ¿hay alguna forma de comprobar si otra aplicación ha creado un administrador?

design decisions wontfix

Comentario más útil

@gaearon

Siempre que trato de hacer esto, sigo recibiendo

DragDropManager.js:40 Uncaught TypeError: createBackend is not a function

¿Alguna idea de qué podría estar causando esto? Tengo exactamente el mismo código que @jaygood con DragDropManager importado de dnd-core y HTML5Backend importado de la biblioteca correcta.

Todos 7 comentarios

Anidar backends no está bien pensado ahora. Si desea proponer un cambio de API para hacerlo más explícito, ¡me alegra escucharlo!

Estoy usando una versión modificada de DragDropContext que simplemente usa el getDefaultManager donde el childContext se declara así:

    const childContext = {
        dragDropManager: getDefaultManager(backend)
    };

esto está funcionando muy bien para mí con un diseño de tarjeta de arrastrar y soltar anidado, pero ciertamente no me he tomado el tiempo para revisar todas las implicaciones de este enfoque todavía

@gaearon

Siempre que trato de hacer esto, sigo recibiendo

DragDropManager.js:40 Uncaught TypeError: createBackend is not a function

¿Alguna idea de qué podría estar causando esto? Tengo exactamente el mismo código que @jaygood con DragDropManager importado de dnd-core y HTML5Backend importado de la biblioteca correcta.

@akhayoon @gaearon Después de actualizar React DND (y también React HTML5 Backend) de 2.6 a 5.0, también recibo este error.

@bureson hola, también estoy enfrentando este problema, ¿alguna solución?

@ JJie09 , deberá cambiar la forma en que importa la biblioteca, una de las siguientes:

import HTML5Backend from "react-dnd-html5-backend"
const HTML5Backend = require('react-dnd-html5-backend').default;

Este problema se ha marcado automáticamente como obsoleto porque no ha tenido actividad reciente. Se cerrará si no se produce más actividad. Gracias por sus aportaciones.

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