Нужна помощь в понимании того как все это работает.
Приложение node, reactjs, react router 4 серверное.
index.jsimport React from 'react'
import ReactDOM from 'react-dom'
import { Provider } from 'react-redux'
import { BrowserRouter } from 'react-router-dom'
import configureStore from './store'
import './index.css'
import App from './containers/App'
// Let the reducers handle initial state
const initialState = {}
const store = configureStore(initialState)
ReactDOM.render(
<Provider store={store}>
<BrowserRouter>
<App />
</BrowserRouter>
</Provider>
, document.getElementById('root')
)
App.jsexport default class App extends Component {
render(){
return (
<div>
<h1>v0.0.1</h1>
<Switch>
<Route exact path="/" component={FirstPage}/>
<Route path="/second" component={Test}/>
<Route component={NoMatch}/>
</Switch>
</div>
)
}
}
App.js, FirstPage, Test компоненты HOC.
Дальше в них нужно вызвать initialState, props задать и функции, которые actions к событиям привязать
Дальше все будет для Test
Правильно ли я задаю state?
int получаю из
reducer const initialState = {
int: 0
}
export default function reducer(state=initialState, action) {
switch (action.type) {
case 'INCRE_TEST':
return action.int++
default:
return state
}
}
У меня проблема как работать с
actions
не получается в Test.js потом вызвать
export const INCRE_TEST = 'INCRE_TEST'
export function increTest(int) {
return {
type: INCRE_TEST,
int
}
}
И
тут самое непонятное, как все это правильно собирать?
Не понимаю как подключить функцию к onClick
Test.jsimport React, { Component } from 'react'
import { connect } from 'react-redux'
//import { bindActionCreators } from 'redux'
import {increTest} from '../actions/test'
import { Link } from 'react-router-dom'
import PropTypes from 'prop-types'
class Test extends Component {
render(){
return (
<div>
<Link to={'/'}><button>first Router</button></Link>
{this.props.int}
???как использовать эту функцию
<button onClick={this.props.onClick}>Click onClick</button>
</div>
)
}
}
Test.propTypes = {
onClick: PropTypes.func.isRequired,
int: PropTypes.number.isRequired
}
//const onClick = int => dispatch(increTest(int))
export const mapStateToProps = state => {
return {
int: state.test.int
}
}
const mapDispatchToProps = dispatch => {
return {
onClick: int => {
dispatch(increTest(int))
}
}
}
export default connect(
mapStateToProps,
mapDispatchToProps
)(Test)