GithubHelp home page GithubHelp logo

Comments (12)

monstersintokyo avatar monstersintokyo commented on August 21, 2024 1

Hey @sampl,

you can use the provided callbacks for that. I modified the example:
https://codesandbox.io/embed/w0x1030lwk

Don't forget to return the props in every callback. They are used in the event hooks of react-with-gesture.

Cheers.

from use-gesture.

sampl avatar sampl commented on August 21, 2024

@monstersintokyo just what I needed--thank you so much!

from use-gesture.

monstersintokyo avatar monstersintokyo commented on August 21, 2024

@sampl you're welcome :-)

from use-gesture.

tim-soft avatar tim-soft commented on August 21, 2024

@drcmda how would this example work now that we only have the onAction callback?

Including onAction means we can update component state based on events but the children of <Gesture /> don't re-render.

Doing it like this isn't gonna work well

updateState = () => this.setState({ ... });

<Gesture>
  {({ ... }) => {
      // Calling this.setState() from render() is bad...
      if (some gesture condition is met) this.updateState();

      return (
        <Spring>
            {...}
        </Spring>
      );
    }
  }
</Gesture>

from use-gesture.

drcmda avatar drcmda commented on August 21, 2024

@tim-soft did something change? how did you do it before? i think otherwise in the class base api that needs to be componentDidUpdate that does the updateState().

from use-gesture.

tim-soft avatar tim-soft commented on August 21, 2024

In an older version, we could call setState() based on some gesture event like in https://codesandbox.io/embed/w0x1030lwk without interfering in the animation

updateState = (props) => {
  if (some gesture condition is met) this.setState({ ... });

  return props;
}

<Gesture onMove={this.updateState}>
  {({ ... }) => (
      <Spring>
          {...}
      </Spring>
    );
  }
</Gesture>

Using the onAction prop causes the spring to not animate

from use-gesture.

drcmda avatar drcmda commented on August 21, 2024

the last bit i don't understand yet. if you're in onAction and you cause a setState, why wouldn't the spring animate? It's been a while but i think i've had trouble figuring out what to do with the renderprops api as it didn't lend itself to this sort of stuff, but using local state as a model for the animation should always work.

from use-gesture.

tim-soft avatar tim-soft commented on August 21, 2024

Here's a codepen where I try to replicate https://codesandbox.io/embed/3vv25z07j6

The top slider uses onAction to decide when to call setState()
The bottom slider tries to call setState() inside the render function --> obviously a noop

You'll notice the top slider set the state, but doesn't move when you drag it around

from use-gesture.

drcmda avatar drcmda commented on August 21, 2024

I see. Could i interest you in adding these events back via PR?

now: https://github.com/react-spring/react-with-gesture/blob/master/index.js

then: https://github.com/react-spring/react-with-gesture/blob/5f243e0b1da7cf7e2c7ba5dc41f440993e8acca2/src/index.js

from use-gesture.

tim-soft avatar tim-soft commented on August 21, 2024

definitely 👍

from use-gesture.

arpitprod avatar arpitprod commented on August 21, 2024

codesandbox demo code not working. showing this error

ModuleNotFoundError Could not find module in path: '@babel/runtime/helpers/builtin/es6/objectSpread' relative to '/node_modules/react-spring/dist/react-spring.es.js'

How to solve ?

from use-gesture.

dbismut avatar dbismut commented on August 21, 2024

@arpitprod This is an old issue. Swipe is documented in the documentation.

from use-gesture.

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.