當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript History.push方法代碼示例

本文整理匯總了TypeScript中history.History.push方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript History.push方法的具體用法?TypeScript History.push怎麽用?TypeScript History.push使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在history.History的用法示例。


在下文中一共展示了History.push方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: push

  push(path: string | LocationDescriptorObject, state?: any) {
    // Do not navigate if the path object matches
    const nextPath = typeof path === 'string' ? path : createPath(path);
    if (nextPath === createPath(this.history.location)) return;

    if (Date.now() - this.lastPush > this.wait) {
      // @ts-ignore TypeScript doesn't recognize our push as a proxy for History.push's
      // overloaded signature, and it's really hard to fix this properly
      this.history.push(path, state);
    } else {
      try {
        // @ts-ignore
        this.history.replace(path, state);
      } catch (e) {
        // Ignore Safari's history.replaceState() rate limit error.
        // See https://github.com/nusmodifications/nusmods/issues/763
        if (
          e.name === 'SecurityError' &&
          e.message.includes('Attempt to use history.replaceState()')
        ) {
          return;
        }

        // Continue throwing all other errors
        throw e;
      }
    }

    this.lastPush = Date.now();
  }
開發者ID:nusmodifications,項目名稱:nusmods,代碼行數:30,代碼來源:HistoryDebouncer.ts

示例2:

export const updateSearch = (
  history: History,
  updates: { readonly [id: string]: any },
) => {
  history.push({
    pathname: history.location.pathname,
    search: qs.stringify({
      ...qs.parse(history.location.search),
      ...updates,
    }),
  });
};
開發者ID:mmerfort,項目名稱:puppetexplorer,代碼行數:12,代碼來源:util.ts

示例3: authSaga

export function* authSaga(
    history: History,
    authApi: IAuthApi,
    usersApi: IUsersApi
) {
    let token: IToken = yield call(authApi.getAuthToken)

    if (token) {
        token = yield call(login, history, authApi, usersApi, { type: 'token', token })
    } else {
        yield put(actions.logoutSuccess())
    }

    yield put(actions.authCheckFinished(token && token.value || null))

    while (true) {
        if (!token) {
            const { payload: credentials } = yield take(actions.login.getType())
            token = yield call(login, history, authApi, usersApi, credentials)
            if (token) {
                history.push('/')
            }
        }

        if (!token) {
            continue
        }

        let userLoggedOut = false
        while (!userLoggedOut) {
            const { expired } = yield race({
                expired: delay(Math.max(token.exp - Date.now() - 30000, 0)),
                loggedOut: take(actions.logout.getType()),
            })

            if (expired) {
                token = yield call(login, history, authApi, usersApi, { type: 'token', token })
            } else {
                yield call(logout, authApi)
                userLoggedOut = true
            }
        }
    }
}
開發者ID:steam-react,項目名稱:steam,代碼行數:44,代碼來源:auth.ts

示例4: call

  return function call(input: Narrow<HistoryInput>): void {
    if (input.type === 'push') {
      history.push(input.pathname, input.state);
    }

    if (input.type === 'replace') {
      history.replace(input.pathname, input.state);
    }

    if (input.type === 'go') {
      history.go(input.amount);
    }

    if (input.type === 'goBack') {
      history.goBack();
    }

    if (input.type === 'goForward') {
      history.goForward();
    }
  };
開發者ID:,項目名稱:,代碼行數:21,代碼來源:

示例5: createBrowserHistory

let input = { value: "" };

{
    let history: History<{some: 'state'}> = createBrowserHistory();

    // Listen for changes to the current location. The
    // listener is called once immediately.
    let unlisten = history.listen(function (location) {
        console.log(location.pathname);
    });

    // When you're finished, stop the listener.
    unlisten();

    // Push a new entry onto the history stack.
    history.push('/home');

    // Replace the current entry on the history stack.
    history.replace('/profile');

    // Push a new entry with state onto the history stack.
    history.push({
        pathname: '/about',
        search: '?the=search',
        state: { some: 'state' }
    });

    // Change just the search on an existing location.
    history.push({ pathname: location.pathname, search: '?the=other+search' });

    // Go back to the previous history entry. The following
開發者ID:AlexGalays,項目名稱:DefinitelyTyped,代碼行數:31,代碼來源:history-tests.ts


注:本文中的history.History.push方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。