小编Bra*_*ley的帖子

从Redux状态删除项目

我想知道你是否可以帮我解决这个问题.我想从Redux状态删除一个项目.我已将用户点击的项目的ID传递action.data到reducer中.

我想知道如何action.data在Redux状态下匹配其中一个ID,然后从阵列中删除该对象?我还想知道在删除单个对象后设置新状态的最佳方法吗?

请参阅以下代码:

export const commentList = (state, action) => {
  switch (action.type) {
    case 'ADD_COMMENT':
      let newComment = { comment: action.data, id: +new Date };
      return state.concat([newComment]);
    case 'DELETE_COMMENT':
      let commentId = action.data;

    default:
      return state || [];
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript arrays reactjs redux

21
推荐指数
2
解决办法
3万
查看次数

通过更新状态作为道具

我对React还是比较陌生,想知道是否可以看一下这个问题。我正在对click事件进行API的ajax调用,并将结果存储在'SearchButtons'组件的状态中。

然后将状态通过道具传递到子组件中。但是,子组件(SearchForm)中的道具等于父组件上的先前状态,并且当用户单击其中一个按钮时不会更新。

我想知道是否有解决办法,也许在将道具发送到子组件之前更新组件?

import React from 'react';
import SearchForm from './SearchForm'

class SearchButtons extends React.Component {
  constructor(){
    super();
    this.state = {
      data: {}
    }
  }

  update(event){
    $.ajax({
      url: 'http://example/api/' + event.target.value,
      dataType: 'json',
      cache: false,
      success: function(data) {
        this.setState({ data: data })
      }.bind(this)
    });
  }

  render() {
    return (
      <div>
        <button type="button" value="people" onClick={this.update.bind(this)} className="btn btn-primary">People</button>
        <button type="button" value="car" onClick={this.update.bind(this)} className="btn btn-primary">Car</button>
        <button type="button" value="planet" onClick={this.update.bind(this)} className="btn btn-primary">Planet</button>
        <SearchForm data={this.state.data} />
      </div>
    )
  }
}

export …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

4
推荐指数
1
解决办法
375
查看次数

标签 统计

javascript ×2

reactjs ×2

arrays ×1

redux ×1