如何使React忽略一条路线?

时间:2019-08-09 23:52:46

标签: reactjs heroku deployment routing react-router

我正在开发一个项目,由于时间太长,需要将用户重定向到API。问题在于API和React前端在同一个域中。因此,当浏览器请求import random import pygame from pygame.rect import Rect from pygame.sprite import Sprite from pygame.surface import Surface class Block(Sprite): def __init__(self, rect): super().__init__() self.idle_color = (255, 255, 255, 255)#white - if not colliding self.hit_color = (0, 255, 0, 255)#green - if colliding self.image = Surface((rect.w, rect.h)) self.color = self.idle_color#default #Do NOT set color here, decided by collision status! self.rect = rect class Player(Sprite): def __init__(self, rect): super().__init__() self.color = (255, 0, 0, 255)#red self.image = Surface((rect.w, rect.h)) self.image.fill(self.color) self.rect = rect class Level(object): def __init__(self, screen, player, blocks): self.color = (20, 20, 20, 255)#gray background self.screen = screen self.player = player self.blocks = blocks #hard-coded player x and y speed for bounding around self.player_speed_x = 1 self.player_speed_y = 1 #Bounces player off the screen edges #Simply dummy method - no collisions here! def move_player(self): p_rect = self.player.rect s_rect = self.screen.get_rect() if p_rect.right >= s_rect.right or p_rect.left <= s_rect.left: self.player_speed_x *= -1 if p_rect.top <= s_rect.top or p_rect.bottom >= s_rect.bottom: self.player_speed_y *= -1 p_rect.move_ip(self.player_speed_x, self.player_speed_y)#modifies IN PLACE! def handle_collisions(self): #First set all blocks to default color for block in self.blocks: block.color = block.idle_color hit_blocks = pygame.sprite.spritecollide(self.player, self.blocks, False) for block in hit_blocks: block.color = block.hit_color #Clear screen with background color, then draw blocks, then draw player on top! def draw(self): self.screen.fill(self.color) for block in self.blocks: #update fill to color decided by handle_collisions function... block.image.fill(block.color) self.screen.blit(block.image, block.rect) self.screen.blit(self.player.image, self.player.rect) def update(self): self.move_player() self.handle_collisions() self.draw() if __name__ == "__main__": pygame.init() width = 400 height = 300 fps = 60 title = "Collision Test" screen = pygame.display.set_mode((width, height)) pygame.display.set_caption(title) clock = pygame.time.Clock() running = True #Create a player player_size = 20 player_x = random.randint(0, width - player_size) player_y = random.randint(0, height - player_size) player_rect = Rect(player_x, player_y, player_size, player_size) player = Player(player_rect) #Create some random blocks blocks = [] num_blocks = 50 for i in range(num_blocks): block_size = 20 block_x = random.randint(0, width - block_size) block_y = random.randint(0, height - block_size) block_rect = Rect(block_x, block_y, block_size, block_size) block = Block(block_rect) blocks.append(block) #Create the level level = Level(screen, player, blocks) while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False level.update() pygame.display.update() clock.tick(fps) 时,它会被React Router拾取,并且永远不会到达API。

我需要React忽略对该特定路由的请求,并让API处理它。

该应用程序托管在Heroku上,因此很有可能是Heroku问题,而不是React问题。

1 个答案:

答案 0 :(得分:0)

如果仅使用良好的旧锚标签(标签),则应能获得预期的效果。

此外,您可以使用JS触发重定向:

<MyComponent onClick={ () => window.location.href = 'this/awesome/url/' } />