【发布时间】:2021-08-26 17:21:02
【问题描述】:
[如果您需要更多代码片段,我很乐意向您展示]
我刚刚使用 React Native 进入 Redux,并且正在构建一个非常基本的存储:它只是读取和添加数据。我遇到了这个问题,我可以用mapStateToProps 连接一个组件,但是当我想使用mapDispatchToProps 它会抛出这个TypeError:(0, _reactRedux.connect)(mapStateToProps)(mapDispatchToProps) is not a function. (In '(0, _reactRedux.connect)(mapStateToProps)(mapDispatchToProps)(MyApp)', '(0, _reactRedux.connect)(mapStateToProps)(mapDispatchToProps)' is an instance of Object)
这就是我使用和导入连接的方式
import { connect } from 'react-redux';
export default connect(mapStateToProps)(mapDispatchToProps)(MyApp);
这些是我的mapStateToProps、mapDispatchToProps 和连接:
const mapStateToProps = state => state;
const mapDispatchToProps = dispatch => ({
addQuote: (val) => dispatch(addQuote(val))
})
export default connect(mapStateToProps)(mapDispatchToProps)(MyApp);
这是我的减速器文件
const initialState = []
const ADD_QUOTE = 'ADD_QUOTE';
export const addQuote = val => ({
type: ADD_QUOTE,
payload: {
quote: val
}
});
export default (state = initialState, action) => {
switch (action.type) {
case ADD_QUOTE:
return [action.payload].concat(state)
default:
return state
}
}
这就是我使用动作创建器的方式
const handleSubmitButton = (val) => addQuote(val);
<TouchableOpacity
style={styles.submitButton}
onPress={ () => handleSubmitButton(quoteForm) }
>
<Text style={{ color: '#fff' }}>
SOUMETTRE
</Text>
</TouchableOpacity>
感谢任何形式的帮助,因为我是这个主题的新手,而且据我所知,我做得很好。
【问题讨论】:
标签: reactjs react-native redux react-redux