我正在尝试通过redux存储将数据发布到api,但是我很难理解整个逻辑。
我的ActionCreators中有一个postComment函数,该函数基本上将api的响应添加到注释数组中。
public function contact() {
return $this->belongsTo('App\Models\Contact');
}
我的redux文件夹下有适当的ActionTypes和comment.js文件。
现在我的问题是如何触发此postComment函数?
假设我有这样的CommentComponent文件
String createTable = "CREATE TABLE " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, " +
COL2 +" TEXT, " + COL3 + " TEXT)" ;
在handleSubmit函数中该怎么做?应该在mapDispatchToProps那里吗?我应该如何修改此代码?显然,我很困惑。
任何帮助将不胜感激。
答案 0 :(得分:1)
使用connect
时,您基本上告诉redux为组件提供新的道具,这些道具由mapStateToProps
和mapDispatchToProps
指定。
因此,在您的示例中,CommentsExample
现在可以访问由connect创建的两个道具:comments
(由mapStateToProps
创建)和postComment
(由{{1}创建) }。
要调度mapDispatchToProps
动作,您可以在postComment
中使用提供的道具:
handleSubmit
要在组件中使用状态,还需要首先创建状态对象,这是完整的示例:
handleSubmit = () => {
this.props.postComment(this.state.text)
}
答案 1 :(得分:1)
检查此链接https://react-redux.js.org/using-react-redux/connect-mapdispatch,其中显示了有关如何使用mapDispatchToProps的清晰示例。 就您而言,您可以这样做:
handleSubmit = () => {
this.props.postComment(this.state.text);
}
其中this.state.text是组件的内部状态。 您还应该使用以下命令初始化CommentComponent内部状态:
constructor(props) {
super(props);
this.state = {
text: ''
};
}
如果您还有其他问题,请告诉我。祝你好运。