第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用反應(yīng)性路由器以編程方式導(dǎo)航

使用反應(yīng)性路由器以編程方式導(dǎo)航

千巷貓影 2019-06-03 09:54:44
使用反應(yīng)性路由器以編程方式導(dǎo)航帶著react-router我可以用Link元素創(chuàng)建本機(jī)由Reaction路由器處理的鏈接。我看到內(nèi)部呼叫this.context.transitionTo(...).我想做一個(gè)導(dǎo)航,但不是從一個(gè)鏈接,從下拉選擇例如。我怎樣才能用代碼做到這一點(diǎn)呢?是什么this.context?我看到了Navigation混音,但我不需要混音就能做到這一點(diǎn)嗎?
查看完整描述

3 回答

?
慕森王

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊

Reaction-路由器4.0.0+回答

在4.0及以上版本中,使用歷史記錄作為組件的支柱。

class Example extends React.Component {
   // use `this.props.history.push('/some/path')` here};

注意:如果您的組件沒有由<Route>..你應(yīng)該用<Route path="..." component={YourComponent}/>擁有這個(gè)。歷史在你的成分中。

Reaction-路由器3.0.0+回答

在3.0及以上版本中,使用路由器作為組件的支柱。

class Example extends React.Component {
   // use `this.props.router.push('/some/path')` here};

Reaction-路由器2.4.0+回答

在2.4及以上版本中,使用高階組件將路由器作為組件的支柱。

import { withRouter } from 'react-router';class Example extends React.Component {
   // use `this.props.router.push('/some/path')` here};// Export the decorated classvar DecoratedExample = withRouter(Example);
   // PropTypesExample.propTypes = {
  router: React.PropTypes.shape({
    push: React.PropTypes.func.isRequired  }).isRequired};

Reaction-路由器2.0.0+回答

此版本與1.x向后兼容,因此不需要升級(jí)指南。只看一遍這些例子就足夠了。

也就是說,如果您希望切換到新的模式,路由器內(nèi)有一個(gè)瀏覽器歷史模塊,您可以使用該模塊訪問

import { browserHistory } from 'react-router'

現(xiàn)在您可以訪問您的瀏覽器歷史記錄,這樣您就可以進(jìn)行推送、替換等操作.比如:

browserHistory.push('/some/path')

進(jìn)一步讀:歷史通航


Reaction-路由器1.x.x回答

我將不談升級(jí)細(xì)節(jié)。你可以在升級(jí)指南

這里問題的主要變化是從導(dǎo)航混合到歷史的變化。現(xiàn)在它使用瀏覽器歷史性API來改變路由,所以我們將使用pushState()而今而后。

下面是一個(gè)使用MIXIN的例子:

var Example = React.createClass({
  mixins: [ History ],
  navigateToHelpPage () {
    this.history.pushState(null, `/help`);
  }})

注意這個(gè)History來自牢騷滿腹/歷史項(xiàng)目。不是反應(yīng)-路由器本身。

如果出于某些原因(可能因?yàn)镋S6類)而不想使用MIXIN,那么您可以訪問從路由器獲得的歷史記錄。this.props.history..它將只能訪問由您的路由器呈現(xiàn)的組件。因此,如果要在任何子組件中使用它,則需要通過props.

您可以在1.0.x文件

這是一個(gè)專門關(guān)于在組件外部導(dǎo)航的幫助頁面。

它建議獲取一個(gè)參考history = createHistory()打電話replaceState在那上面。

Reaction-路由器0.13.x回答

我也遇到了同樣的問題,只能用Reaction路由器附帶的導(dǎo)航混合器找到解決方案。

我就是這么做的

import React from 'react';import {Navigation} from 'react-router';let Authentication = React.createClass({
  mixins: [Navigation],

  handleClick(e) {
    e.preventDefault();

    this.transitionTo('/');
  },

  render(){
    return (<div onClick={this.handleClick}>Click me!</div>);
  }});

我能打電話transitionTo()不需要訪問.context

或者你可以試試漂亮的ES6class

import React from 'react';export default class Authentication extends React.Component {
  constructor(props) {
    super(props);
    this.handleClick = this.handleClick.bind(this);
  }

  handleClick(e) {
    e.preventDefault();

    this.context.router.transitionTo('/');
  }

  render(){
    return (<div onClick={this.handleClick}>Click me!</div>);
  }}Authentication.contextTypes = {
  router: React.PropTypes.func.isRequired};

Reaction-路由器-Redux

注:如果您正在使用Redux,則有另一個(gè)項(xiàng)目名為Reaction-路由器-Redux這為您提供了React路由器的Redux綁定,使用的方法與反應(yīng)-剩余是嗎?

Reactive-R外層-Redux有幾個(gè)可用的方法,允許從內(nèi)部操作創(chuàng)建者進(jìn)行簡單的導(dǎo)航。這對(duì)于那些在Rep本機(jī)中具有現(xiàn)有體系結(jié)構(gòu)的人來說尤其有用,他們希望在最低限度的樣板開銷的情況下利用ReactiveWeb中相同的模式。

探索以下方法:

  • push(location)

  • replace(location)

  • go(number)

  • goBack()

  • goForward()

下面是一個(gè)示例用法杜克:

./actioncreators.js

import { goBack } from 'react-router-redux'export const onBackPress = () => (dispatch) => dispatch(goBack())

./viewComponent.js

<button
  disabled={submitting}
  className="cancel_button"
  onClick={(e) => {
    e.preventDefault()
    this.props.onBackPress()
  }}>
  CANCEL</button>


查看完整回答
反對(duì) 回復(fù) 2019-06-03
?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

反應(yīng)-路由器v2

最近的版本(v2.0.0-rc5),推薦的導(dǎo)航方法是直接推到歷史單例上。您可以在在組件文檔外部導(dǎo)航.

有關(guān)摘錄:

import { browserHistory } from 'react-router';browserHistory.push('/some/path');

如果使用更新的反應(yīng)性路由器api,則需要使用history從…this.props當(dāng)組件在內(nèi)部時(shí),所以:

this.props.history.push('/some/path');

它也提供pushState但是,對(duì)于記錄在案的警告來說,這是不可取的。

如果使用react-router-redux,它提供了一個(gè)push函數(shù),您可以這樣分派:

import { push } from 'react-router-redux';this.props.dispatch(push('/some/path'));

但是,這可能只用于更改URL,而不是實(shí)際導(dǎo)航到頁面。


查看完整回答
反對(duì) 回復(fù) 2019-06-03
  • 3 回答
  • 0 關(guān)注
  • 729 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)