入口文件
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './contain/app.jsx';
import { Provider } from 'react-redux';
import registerServiceWorker from './registerServiceWorker';
import configureStore from './store/configureStore';
const store = configureStore();
ReactDOM.render(
<Provider store={store}>
<App/>
</Provider>
, document.getElementById('root'));
registerServiceWorker();
容器组件
import { React, Component } from 'react';
import { connect } from 'react-redux'
import consoleLog from '../actions/index'
import Com from '../components/component-a/index.jsx'
import './app.css'
class App extends Component {
render() {
const { dispatch } = this.props;
return (
<div className="App">
<header className="App-header">
<h1 className="App-title">Welcome to React</h1>
</header>
<p className="App-intro">
To get started, edit <code>src/App.js</code> and save to reload.
</p>
<Com dispatchAction={ text => dispatch(consoleLog(text))}/>
</div>
)
}
}
const mapStateToProps = (state) => {
return {
text: state.text
}
}
const mapDispatchToProps = (dispatch) => {
return {
dispatchAction: () => {
dispatch({type: 'CONSOLE'})
}
}
}
export default connect(mapStateToProps, mapDispatchToProps)(App);
<Com>组件
import { React, Component} from 'react'
import { findDOMNode} from 'react-dom'
export default class com extends Component {
render () {
return (
<div>
<input type="text" ref= 'input'/>
<button onClick={ e => this.handleClick(e)}>add</button>
</div>
)
}
handleClick (e) {
const inputNode = findDOMNode(this.refs.input);
const text = inputNode.value.trim();
this.props.dispatchAction(text);
inputNode.value = '';
}
}
错误信息
import { React, Component } from 'react';
应该写成import React, { Component } from 'react'