【发布时间】:2015-12-20 11:19:59
【问题描述】:
function mapStateToProps(state) {
return {
phoneNumber: state.phoneNumber,
}
}
function mapDispatchToProps(dispatch) {
return bindActionCreators({
requestCall // this is valid function
}, dispatch)
}
class Home extends Component {
constructor(props) {
super(props);
this.state = {
phoneNumber: null
};
}
render() {
const { requestCall } = this.props;
return (
<div>
<FlatButton label="Schedule" primary={true} onTouchTap={requestCall} value={this.state.phoneNumber}/>
</div>
)
}
}
Home.propTypes = {
requestCall: PropTypes.func.required
};
export default connect(mapStateToProps, mapDispatchToProps)(Home);
在不同的文件中,我需要像这样引用
import React from 'react'
import { render } from 'react-dom'
import { Provider } from 'react-redux'
import Home from './app'
import configureStore from './store/configureStore';
const store = configureStore();
render(
<Provider store={store}>
<Home />
</Provider>,
document.getElementById('react-app')
);
然后我在控制台中看到了这个
警告:失败的 propType:Invariant Violation:主页:prop 类型
requestCall无效;它必须是一个函数,通常来自 React.PropTypes。检查Connect(Home)的渲染方法。
我错过了什么?
【问题讨论】:
-
您有什么要求来电?您的 import requestCall 语句可能有问题吗?
-
@zhaozhiming 它只是返回一个带有类型的字典。
-
requestCall定义在哪里?