Giter Club home page Giter Club logo

Comments (5)

asotog avatar asotog commented on July 21, 2024

no, you can't but you may workaround a bit, like wrap the useFabricJSEditor around a functional component and use that functional component from class component, acting as an intermediate layer, I have done that before for other projects

from fabricjs-react.

ct-gilford avatar ct-gilford commented on July 21, 2024

no, you can't but you may workaround a bit, like wrap the useFabricJSEditor around a functional component and use that functional component from class component, acting as an intermediate layer, I have done that before for other projects

But even with that, it won't help with what I wish to achieve, which is to trigger the editor to add a circle or something when clicking on a button from a different component. Even if I can get the reference of the class component that wrapped the functional component, I can't call the functional component to do something like FunctionalComponent.addCircle().

from fabricjs-react.

ct-gilford avatar ct-gilford commented on July 21, 2024

no, you can't but you may workaround a bit, like wrap the useFabricJSEditor around a functional component and use that functional component from class component, acting as an intermediate layer, I have done that before for other projects

But even with that, it won't help with what I wish to achieve, which is to trigger the editor to add a circle or something when clicking on a button from a different component. Even if I can get the reference of the class component that wrapped the functional component, I can't call the functional component to do something like FunctionalComponent.addCircle().

@asotog I found a workaround, from the parent component, I create and pass down a new object as a prop. Then, in the child component, I populate the object with the internal functions like so object.foo = foo; where foo is the defined function inside the child component. Now, if I want to call any of the child component's internal functions, I can call object.foo().

So I think you can close this issue. But I recommend adding some sample codes in the Readme on how to do this whether with an actual class component or with a workaround method like mine.

from fabricjs-react.

asotog avatar asotog commented on July 21, 2024

interesting, also I recommend trying to use ref instead from the class component, which is also possible to achieve the same you did, but this sounds more like extended implementation to what the actual component does @ct-gilford.

From the class component, you do like https://reactjs.org/docs/refs-and-the-dom.html#creating-refs and from function component, you say like ref.current = editor

from fabricjs-react.

ct-gilford avatar ct-gilford commented on July 21, 2024

interesting, also I recommend trying to use ref instead from the class component, which is also possible to achieve the same you did, but this sounds more like extended implementation to what the actual component does @ct-gilford.

From the class component, you do like https://reactjs.org/docs/refs-and-the-dom.html#creating-refs and from function component, you say like ref.current = editor

That would work too. Thanks for the suggestion!

from fabricjs-react.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.