【问题标题】:How to pass parameters into a function in Context Reactjs如何将参数传递给上下文 Reactjs 中的函数
【发布时间】:2021-06-01 17:22:52
【问题描述】:

我需要从另一个组件调用 Context 中的参数化函数。下面是代码sn-p。

上下文

Sortdata=(id)=> {
        console.log("passed from homepage",id)
         if(this.state.data>parseInt(id)){
        recorddata.sort((a,b)=>{
            let da = new Date(a.inspectioN_DT),
            db = new Date(b.inspectioN_DT);
        return da - db;}
    });
        console.log(recorddata);
        this.setState({
            listvalues: recorddata
        })
    }

 render() { 
        return ( 
            <DataContext.Provider value={{...this.state, sortData: this.Sortdata }}>
                {this.props.children}
            </DataContext.Provider>
           
         );
    }

我需要从我的主组件调用上述函数 Sortdata()。请建议我一种调用此函数的方法或使用反应上下文本身的替代方法。提前致谢。

【问题讨论】:

标签: reactjs react-redux react-context


【解决方案1】:

首先创建你的上下文

const DataContext= React.createContext('');

传入你已经做的值(即带有函数的对象)

 <DataContext.Provider value={{...this.state, sortData: this.Sortdata }}>

访问上下文(必须在提供者内部)

const value = useContext(DataContext);

调用函数示例:

value.sortData(3);

查看更多信息:https://reactjs.org/docs/hooks-reference.html#usecontexthttps://reactjs.org/docs/context.html

【讨论】:

  • 嗨@anthony_718,我已经尝试过该方法,但由于 sortData 不是函数,因此显示错误。我想从另一个类组件中调用这个函数。目前我正在访问上下文中的状态,如下面static contextType = DataContext; const {Userlist, Roles, Devices} = this.context;
猜你喜欢
  • 2018-08-28
  • 2023-01-08
  • 1970-01-01
  • 1970-01-01
  • 2011-04-07
  • 2016-05-23
  • 2012-10-28
  • 2020-10-10
  • 1970-01-01
相关资源
最近更新 更多