使用Redux反应本地发布数据

时间:2019-02-26 20:51:06

标签: reactjs react-native redux react-redux

我正在尝试通过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那里吗?我应该如何修改此代码?显然,我很困惑。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

使用connect时,您基本上告诉redux为组件提供新的道具,这些道具由mapStateToPropsmapDispatchToProps指定。

因此,在您的示例中,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: ''
    };
  }

如果您还有其他问题,请告诉我。祝你好运。