पर केवल नए बाल घटकों को ही पुनर्स्थापित करना संभव है, मैं अपने आवेदन में प्रतिक्रिया-राउटर का उपयोग कर रहा हूं और मैं पहले से ही डोम में मौजूद घटकों के रिमोट को रोकने के लिए एक तरीका ढूंढ रहा हूं। उदाहरण के लिए, यदि मैं यूआरएल dashboard
पर हूं, तो मेरे पास DashboardComponent
घुड़सवार होगा। जब मैं dashboard/settings
में बदलता हूं तो मेरा DashboardComponent
साथ ही SettingsComponent
को डोम में भेज दिया जाता है। मैं केवल वर्तमान यूआरएल के बच्चों को माउंट करने के लिए एक साफ तरीका खोजना चाहता हूं। क्या यह सकारात्मक है?क्या केवल प्रतिक्रिया-राउटर संक्रमण
रूटर:
import { Component, createFactory, PropTypes } from 'react'
import { Route, RouteHandler, DefaultRoute, NotFoundRoute } from 'react-router'
import Home from '../components/Home'
import Dashboard from '../components/Dashboard'
import ViewPlayers from '../components/clubs/ViewPlayers'
let route = createFactory(Route),
handler = createFactory(RouteHandler),
root = createFactory(DefaultRoute),
pageNotFound = createFactory(NotFoundRoute),
Transitions = createFactory(require('react/lib/ReactCSSTransitionGroup'));
class App extends Component {
constructor() {
super();
}
render() {
return (
Transitions({transitionName: 'fade'},
handler({key: this.context.router.getCurrentPath()})
)
)
}
}
App.contextTypes = {
router: PropTypes.func
};
let Router = (
route({path: '/', name: 'home', handler: App},
root({handler: Home}),
route({path: 'dashboard', name: 'dashboard', handler: Dashboard},
route({path: 'players', name: 'players', handler: ViewPlayers}),
)
)
);
export { Router };
डैशबोर्ड (जनक घटक):
import React from 'react'
import { RouteHandler, Link } from 'react-router'
import { _, div } from './Html'
export default
class Dashboard extends React.Component {
constructor() {
super();
this.state = {}
}
componentWillMount() {
console.log('mounted')
}
componentWillUnmount() {
}
render() {
return (
div({},
_(Link)({to: 'players'}),
_(RouteHandler)({})
)
)
}
}
नोट:_
सिर्फ React.createFactory() के लिए एक रैपर
रिएक्ट राउटर का कौन सा संस्करण आप उपयोग कर रहे हैं? AFAIK सामान्य व्यवहार यह है कि इसे पुनः सुलझाने दें, यह सुलझाने वाला एल्गोरिदम है, जो डिफ़ॉल्ट रूप से पेड़ में घटकों को याद नहीं करेगा जो प्रकार या स्थिति को नहीं बदलते हैं। यह * घटकों को फिर से प्रस्तुत करेगा, लेकिन उन्हें फिर से माउंट नहीं करना चाहिए। –
शायद मेरी समझ के बारे में मेरी समझ गलत है, लेकिन संक्रमण परिवर्तन पर, 'घटक WillMount' निकाल दिया गया है - क्या यह इंगित नहीं करता कि घटक remounting है? मैं 'v 0.13' –
का उपयोग कर रहा हूं हां, यह इंगित करता है कि घटक remounting है, लेकिन अगर मैं अपने खुद के प्रतिक्रिया राउटर v0.13 परियोजनाओं, और जब तक घटक वही रहता है और उसी स्थिति में मैं एक पर डबल-चेक किया पेड़, यह फिर से माउंट नहीं करता है। क्या आपके पास कुछ कोड या पुनरुत्पादित उदाहरण है जिसे आप साझा कर सकते हैं? –