Предупреждение: Неправильный тип пропеллера: неверный «проп» компонент добавлен в «Маршрут» - реагирует на маршрутизатор - PullRequest
0 голосов
/ 12 марта 2020

Я хочу решить это предупреждение. Я получаю это предупреждение, как только я добавляю реактив-роутер в приложение. js. (Само приложение работает нормально с этим предупреждением.)

Предупреждающее сообщение:

index.js:1 Warning: Failed prop type: Invalid prop 'component' supplied to 'Route': the prop is not a valid React component
    in Route (at App.js:34)
    in App (at src/index.js:9)
    in Router (created by HashRouter)
    in HashRouter (at src/index.js:8)

Я просто передаю состояние вниз дочернему компоненту формы Приложение. js Приложение . js

import React, { Component } from 'react'
import { BrowserRouter as Router, Switch, Route } from 'react-router-dom'
import './App.css'
import MasterPassword from './MasterPassword'
import EncryptForm from './EncryptForm'
import NotFound from './NotFound'

class App extends Component {
  constructor(props) {
    super(props)
    this.state = {
      masterPassword: null
    }
  }

  getMasterPassword = userPassword => {
    this.setState({
      masterPassword: userPassword
    })
  }

  render() {
    return (
      <Router>
        {!this.state.masterPassword
        ? <MasterPassword
            path='/ask-password'
            masterPassword={this.state.masterPassword}
            onStorePassword={this.getMasterPassword}
          />
        : <div className="App">
            <Switch>
              <Route exact path='/' render={() => <EncryptForm masterPassword={this.state.masterPassword} />} />
              <Route component={<NotFound />} />
            </Switch>
          </div>}
      </Router>
    )
  } 
}

export default App

index. js

import React from 'react'
import ReactDOM from 'react-dom'
import { HashRouter } from 'react-router-dom' 
import './index.css'
import App from './components/App'
import * as serviceWorker from './serviceWorker'

ReactDOM.render(<HashRouter>
        <App />
    </HashRouter>, document.getElementById('root'))

serviceWorker.unregister()

Спасибо!

1 Ответ

0 голосов
/ 12 марта 2020

Измените <Route component={<NotFound />} /> на следующее: <Route component={NotFound} />

Это довольно стандартное поведение для библиотек, подобных этой. Они хотят визуализировать компонент следующим образом: <component />, а не так: {component}.

...