का उपयोग कर किसी ऐप में बेस यूआरएल जोड़ना मैं React-Router 1.0.0-rc3 का उपयोग कर Redux-Router 1.0.0-beta3 के साथ उपयोग कर रहा हूं।Redux-Router + React-Router
रिएक्ट-राउटर का उपयोग करते समय, आप useBasename
का उपयोग createHistory
के साथ एक ऐप के लिए बेस यूआरएल सेट करने के लिए कर सकते हैं, ताकि आप एक उपनिर्देशिका के अंदर चलने वाले ऐप को आसानी से लिख सकें। Example:
:
import { createHistory } from 'history';
let base = "/app_name/"
<Router history={browserHistory}>
<Route path={base} component={App}></Route>
</Router>
<Link path={base + "some_path"}>some_path</Link>
आप useBasename
का उपयोग कर इस तरह से लिख सकते हैं:
import { createHistory, useBasename } from 'history';
const browserHistory = useBasename(createHistory)({
basename: "/app_name"
});
<Router history={browserHistory}>
<Route path="/" component={App}></Route>
</Router>
<Link path="/some_path">some_path</Link>
हालांकि, Redux-रूटर में, आप एक के लिए history
के बजाय createHistory
पास करनी होगी reducer:
const store = compose(
applyMiddleware(m1, m2, m3),
reduxReactRouter({
routes,
createHistory
}),
devTools()
)(createStore)(reducer);
डब्ल्यू कैसे कर सकते हैं इस मामले में useBasename
का उपयोग करें? compose
को
const createHistoryWithBasename = (historyOptions) => {
return useBasename(createHistory)({
basename: '/app_name',
...historyOptions
})
}
और पारित यह:
मुझे यकीन है कि क्या दूसरे उदाहरण नहीं कर रहा हूँ (" आप उपयोग बेसिनम का उपयोग कर इस तरह लिख सकते हैं ") का मतलब है। ऐसा लगता है कि "इतिहास" मॉड्यूल (प्रतिक्रिया का हिस्सा नहीं) का उपयोग कर रहा है। साथ ही, यदि आप पहले ही एक आयातित "ब्राउज़र इतिहास" ऑब्जेक्ट का उपयोग कर रहे हैं, तो प्रतिक्रिया-राउटर से, आप इसे "const BrowserHistory" परिभाषा के साथ ओवरराइट नहीं कर सकते हैं। और यदि मैं इसे "newBrowserHistory" के साथ प्रतिस्थापित करता हूं, तो मुझे त्रुटि मिलती है "TypeError: _history.useBasename कोई फ़ंक्शन नहीं है"। इसलिए मैं ईमानदारी से उदाहरण के सिर या पूंछ नहीं बना सकता। – Peter