Не могу записать в состояние значение перед рендерингом React

264
28 июня 2018, 19:10

Хочу из props match получить название страницы, вот ниже попытка при запуске реакта, при этом в консоле не показывает this.props.match.path

import React, {Component} from 'react' 
import Post from './Post' 
 
export default class Posts extends Component { 
    state = { 
      namePage: '' 
   }; 
   componentWillMount() { 
    this.setState({ 
        namePage: this.props.match.path.slice(1)[0].toUpperCase() + this.props.match.path.slice(2) 
    }) 
  render(){ 
    return ( 
             <div> 
                   <h2>{this.state.namePage}</h2> 
             </div> 
 
    ) 
} 
 
}
вот что получаю при запуске реакта, помогите понять что я делаю не так

Answer 1

Вам нужно подключить компоненты к react-router-dom

import React, { Component } from 'react';
import { BrowserRouter, Route } from 'react-router-dom';
import Post from './Post';
class App extends Component {
    render() {
        return (
            <div className="App">
                <BrowserRouter>
                    <Route path="/post" component={Post} />
                </BrowserRouter>
            </div>
        );
    }
}
export default App;

По умолчанию в props компонента match не передаётся

READ ALSO
API VK метод wall.post

API VK метод wall.post

Всем привет цель - постить на стену паблика вк из сайта, для этого выбрал Open API, но мне не критично в принципеДля публикации использую метод...

230
Использование сторонних элементов на HTML+CSS+JS в Angular 6

Использование сторонних элементов на HTML+CSS+JS в Angular 6

Всем приветПодскажите пожалуйста как правильно вставить сторонний элемент на HTML+CSS+JS в компонент Angular

227
Гарантировать отсутствие null после match

Гарантировать отсутствие null после match

Может ли статический анализатор javascript-кода проверить, что регулярное выражение будет давать совпадение на любой строке?

235