本文整理汇总了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();
}
示例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,
}),
});
};
示例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
}
}
}
}
示例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();
}
};
示例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