Расположение реквизита не определено при обновлении (ReactJS) - PullRequest
2 голосов
/ 07 октября 2019

Я отправляю объект с парой параметров через реквизит "to" в моей ссылке от Reaction-router-dom. Первоначально, когда ссылка нажата, данные в порядке, и реквизиты имеют свое значение. Как только я обновлю их, они не определены.

Вот ссылка ...

let newTo = {
     pathname: `/poke/${name}`,
    param1: name
}
const { name } = this.props;
<Link style={viewBtn} to={newTo}>View</Link>

Вот маршрут, если это имеет значение ...

<Route path="/poke/:pokemon" component={PokeSummary} />

Вот код намой другой компонент получает опору ...

    constructor(props) {
    super(props)
    this.state = {
        paramName: props.location.param1,
        pokemon: {
            id: 0,
            name: '',
        },
        isLoading: false
    }
}

componentDidMount() {
    this.fetchData(this.state.paramName)
}

fetchData = (nameP) => {
    fetch(`https://pokeapi.co/api/v2/pokemon/${nameP}`)
        .then(res => res.json())
        .then(data => this.setState({
            pokemon: {
                id: data.id,
                name: data.name,
            }
        }, () => {console.log(this.state.pokemon)}))
}

Спасибо!

1 Ответ

2 голосов
/ 07 октября 2019

Вы можете просто использовать props.match.params.pokemon вместо передачи параметра следующим образом, поскольку, если пользователь не перенаправлен по вашей ссылке и не переходит на URL напрямую, эти внутренние состояния не будут доступны

...