Comments (6)
@MrSauceman Thank you for reporting this, will fix this ASAP
from react-cron-generator.
@MrSauceman Just updated the component,
Using getDerivedStateFromProps need some major change in the component, it may cause other issues
i have added ref
to the component now you can access state and functions using ref. You can change cron value from outside the component even after cron generator loaded,
add the new prop onRef={ref => (this.cronGen = ref)}
<Cron
onRef={ref => (this.cronGen = ref)}
onChange={(e)=> {this.setState({value:e}); console.log(e)}}
value={this.state.value}
showResultText={true}
showResultCron={true}
/>
this.cronGen.setValue(/* Your new value */)
Just call this.cronGen.setValue(/* Your new value */)
to change the value when you need
please use v1.2.3
from react-cron-generator.
I was actually able to fix this using componentWillReceiveProps
.
I cloned your previous version and made the following minor changes to a few lines and now the value updates properly without having to manually call this.cronGen.setValue(/* Your new value */)
.
I think these changes are more in the spirit of react, where your component re-renders automatically if the props change. Calling a separate function from a ref to update a prop just doesn't feel quite right for react.
If you want, I can PR this, or you can manually make these changes. They are very minor and will not break anything - I simply extracted the code from componentWillMount
into its own function called setValue
, called it from componentWillMount
, and then added a call to it in componentWillReceiveProps
.
Let me know what you think.
from react-cron-generator.
Yes i have already tried this componentWillRecieProps method
but it made some other mistakes like, when the onChange event called from inside the compoent to parent this will also call componentWillRecieveProps and running all those checks again, (at the initial time if no value supplied to the component this force to change to component to show the default tab)
This may create issues in other users
Yes i know creating ref is not suggested in react but as instant solution i am using this
i will definitely try to clear this in a better way as you suggested
Thank you
from react-cron-generator.
That if statement within componentWillReceiveProps
that checks to make sure that the value prop has actually changed before calling setValue
should take care of the problem you are describing. It will only set the value if it has changed, which is what you want. You want to keep your value state up to date with the value prop that is passed in. I think you want those checks to run every time the value prop changes to make sure you have the latest value.
from react-cron-generator.
I have updated the code as you mentioned
it looks working now
it was some other mistake which i found before
Thank you @MrSauceman
from react-cron-generator.
Related Issues (20)
- TypeScript with complete definitions HOT 2
- When choose Monthly day(s) before the end of the month, get warning HOT 3
- Cron expression in unix based format HOT 3
- Cron generator Tabs are not retaining when we assigning the value in edit mode HOT 7
- Error when setting state with less header options than default HOT 2
- Re: Error when setting state with less header options than default #38 HOT 1
- Update CronStrue to latest version HOT 2
- Simple Cron Expression Not Possible? HOT 4
- Update Demo Page HOT 2
- Hours tab line should have "(s)" HOT 1
- Support for AWS HOT 1
- SyntaxError: Unexpected token HOT 8
- Incompatibility with the react 16.x version HOT 4
- When setting the cron expression '* * * * * * *' as the initial value and opening the generator, it is not recognized. HOT 2
- Cannot seem to initialize expression value for editing HOT 2
- Weekly multiple actions issues
- Hourly tab: unable to set 0 hour HOT 3
- Version 2.0.11 is overriding my styles HOT 1
- Inquiry About Generating 6-Field Cron Expressions HOT 5
- Combining weekly/hourly tabs HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-cron-generator.