当前位置: 首页 > 知识库问答 >
问题:

在独立分量反应和还原之间传递数据

羿季
2023-03-14

对于Reaction和Redux,我是个新手。我试图将数据从一个组件传递到另一个组件。但它没有亲子关系,相互独立。有人能帮我做这件事吗?下面是我的代码。

export class EmpSearch extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      Empnumber: ''
    };
  }

  updateEmpNumber(e) {
    this.setState({Empnumber: e.target.value});
  }

  render() {
    return (
      <div className="row">
        <form>
          <div className="form-group">
            <label htmlFor="Empnumber">Emp Number</label>
            <input type="text" className="form-control" id="Empnumber" placeholder="Emp Number" value={this.state.Empnumber} onChange={this.updateEmpNumber.bind(this)}/>
          </div>
        </form>
      </div>
    );
  }
}

function mapStateToProps(state){
  return{
    Empnumber: state.Empnumber
  };
}

export default connect(mapStateToProps)(EmpSearch);

另一个文件是我想要发送的EmpNumber在下面,

class EmpDetail extends React.Component {
  render() {
    return (
      <div className="container">
        <input type="text"/>
      </div>
    );
  }
}

export default EmpDetail;

共有1个答案

袁奇逸
2023-03-14

好的,这里有一个例子。我将假设您已经配置了所有Redux商店,即创建了商店、rootReducer等...因为这是一个单独的帖子。

因此,基本的思想是,当您想要更新Redux存储状态时,您向reducer分派一个操作,并随它一起发送一个有效的数据负载。这听起来很混乱,但本质上它只是告诉reducer您想要做什么,即:“嘿reducer我想让您UPDATE_EMP_NUMBER,这是数据”。

一个reducer基本上只是一个巨大的switch语句,如下所示,它只是根据给定的操作返回状态的新部分。

export default function employeeReducer(state = [], action) {
    switch (action.type) {
        case UPDATE_EMP_NUMBER:
            {
                const Empnumber = action.payload;
                return {
                    ...state,
                    Empnumber
                };
            }
            case ANOTHER_ACTION:
            {
                // etc...
            }
        default:
            return state;
    }
}
export class EmpSearch extends React.Component {
        // Not needed anymore as state going to Redux and not local component state
    /*
        constructor(props) {
        super(props);
        this.state = {
            Empnumber: ''
        };
        }
    */

    updateEmpNumber(e) {
        // No need to set state here as you are now passing this data to Redux store
        // this.setState({Empnumber: e.target.value});

        // Instead we will dispatch an action and send the empNumber to the reducer
        this.props.dispatch({
                type: 'UPDATE_EMP_NUMBER',
                payload: e.target.value
            });
    }

    render() {
    return (
        <div className="row">
        <form>
            <div className="form-group">
            <label htmlFor="Empnumber">Emp Number</label>
            <input type="text" className="form-control" id="Empnumber" placeholder="Emp Number" value={this.props.Empnumber} onChange={this.updateEmpNumber.bind(this)}/>
            </div>
        </form>
        </div>
    );
    }
}
    
function mapStateToProps(state){
    return {
        Empnumber: state.Empnumber
    }
}
    
export default connect(mapStateToProps)(EmpSearch);
class EmpDetail extends React.Component {
    render() {
        const empNumber = this.props.Empnumber;
        return (
            <div className="container">
                Empnumber = {empNumber}
            </div>
        );
    }
}

function mapStateToProps(state){
    return {
        Empnumber: state.Empnumber
    }
}
    
export default connect(mapStateToProps)(EmpDetail);
 类似资料:
  • 问题内容: 我对React和Redux非常陌生,我正在尝试将数据从一个组件传递到另一个组件。但它没有父子关系,并且彼此独立。谁能帮我做到这一点?下面是我的代码。 另一个文件是我想发送EmpNumber的位置, 问题答案: 好的,这是一个例子。我将假设您已经配置了所有Redux存储,即创建存储,rootReducer等…,因为这是一个单独的帖子。 因此,基本的想法是,当你想更新你的终极版商店状态你

  • 问题内容: 我花了过去的几个小时在这里和其他地方进行阅读和实验,但是我并没有真正理解我确信这是一个非常基本的概念:在不同的函数之间传递值(作为变量)。 例如,我将一堆值分配给一个函数中的列表,然后想稍后在另一个函数中使用该列表: 基于对函数参数的作用的理解,我希望这样做如下: 将“列表”初始化为空列表;打电话给main(至少,我知道我没事…) 在defineAList()中,将某些值分配给列表;然

  • 问题内容: 抱歉,如果我的问题是菜鸟。我正在使用pgsql 8.4运行Django 1.2,并且需要在从用户处获得输入后运行Java程序,进行一些计算并将结果返回给用户。 我是否可以知道在Java和Python Django之间传递数据的最佳方法是什么,以便解决上述情况?我听说过Jython,但是根据Django文档,它需要扩展名jython- Django,但目前不支持django1.2.x。我

  • 问题内容: 我有一个C结构。 我想将数据从Java映射到C结构,如何使用JNI进行处理?我不会编程Java代码。Java程序员只是想知道他应该以哪种形式向我发送数据?他是否应该期待更多细节 我目前正在通过用包含2列的CSV文件填充结构实例来测试我的代码。 我也想从我的C代码向Java应用程序返回3个double值。 问题答案: 向您的Java程序员提供以下声明: 在您的C代码中,您将能够使用传递的

  • 问题内容: 我正在努力实现以下目标: 1)我在Java端有一个字节数组,代表一个图像。 2)我需要授予我的本机代码访问权限。 3)本机代码使用GraphicsMagick解码此图像,并通过调用resize创建一堆缩略图。它还计算图像的感知哈希,它可以是矢量或unint8_t数组。 4)一旦我将这些数据返回到Java端,不同的线程将读取它。缩略图将通过HTTP上传到某些外部存储服务。 我的问题是:

  • 问题内容: 在应用程序之间传递简单数据(例如String)的最佳方法是什么?字符串是发送方应用中已知的字段,接收方应用需要此字段。 我曾考虑将其存储在MODE_WORLD_READABLE SharedPreferences中,但我不一定知道包名称(该名称将存在于库中),该值可以由各种应用程序设置,因此很难查找。 我当时想两个应用程序都包含BroadcastReceivers。打开接收方应用程序后