Comments (3)
It should work.
Where exactly is componentWillReceiveProps
is triggered? In ItemsList
component?
If props
change it should fetch the new url.
The example does implement similar thing, no?
from react-resolver.
Hmm… Im still not that convinced yet :/
Having this :
@resolve("item", function(props){
var url = "/item/" + props.params.slug
return axios.get(url).then((response) => response.data
})
export default class ItemsList extends Component {
render(){
const { item } = this.props;
return(
<ChildComponent item={item}>
)
}
})
I think I had the same problem on the initial question.
As you said it was not explicit enough, hope it is here
If I was on /item/xxx and that I go to /item/zzz, @resolve is triggered, I do get a new render for the component, but the child component will not receive the new prop — which feels buggy. The componentWillReceiveProps of the child is not triggered. So it differs from the example you're pointing out as i'm using (maybe by mistake) a child component
I first though it was simply the fact of using a const
on the proptype before returning the render, but i might just have been wrong thinking that
from react-resolver.
@bbnnt When the url changes you should check that in the componentWillReceiveProps
and then refetch the data like this:
@resolve('company', (props) => {
const { companySlug } = props.params
return props.getCompany(companySlug).then(payload => payload)
})
export class Company extends React.Component {
componentWillReceiveProps(nextProps) {
const { params: { companySlug }, getCompany } = this.props
const { params: { companySlug: newCompanySlug } } = nextProps
if (newCompanySlug !== companySlug)
getCompany(newCompanySlug)
}
}
componentWillReceiveProps
Got called because the route changes so the param
attribute is being updated.
In my example getCompany
is a function the container connects to the component.
from react-resolver.
Related Issues (20)
- React.renderToStaticMarkup -> ReactDOMServer.renderToStaticMarkup HOT 2
- Can I use this without server rendering? HOT 3
- Add ability to cache resolved props HOT 9
- Using HOC breaks HMR
- Minimum universal react API HOT 1
- test
- Support variable? HOT 3
- Unhandled rejections server side HOT 1
- @context steals data from this.context HOT 6
- Allow factory to decide which props to re-use? HOT 5
- Documentation links are broken HOT 4
- Using @client and @resolve on the same class causes @resolve to be called twice HOT 1
- Some way of manipulating data before passing it to component HOT 2
- Breakage with React 16: PropTypes no longer exported by React HOT 1
- "[email protected]" has incorrect peer dependency "react@^0.14.6 || ^15.0.0-0" HOT 5
- Need hydrate static method in the Resolver class for server side rendering HOT 2
- Fix compatibility with Babel 6
- Resolve multiple props with one callback HOT 5
- Initial Data from Django using React Resolver HOT 1
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-resolver.