【问题标题】:Is it possible to pass a function via state params是否可以通过状态参数传递函数
【发布时间】:2020-11-05 05:18:22
【问题描述】:

如何将函数作为状态参数传递,使用带有 props.history.push 方法的反应路由器。

const myFun = () => {
  console.log("do something");
}

例如:

props.history.push({
      pathname: "/myrouterpath",
      state: {
         myFun: myFun 
      },
    });

如果我这样做,我会收到错误无法在“历史”上执行“pushState”:无法克隆函数 myFun() {} 请帮帮我。

【问题讨论】:

  • props.history.push({ pathname: '/product', query: { myFun: myFun }});,您可以使用查询。未测试
  • 你不能。读取 wc3 web history apiw3.org/TR/html52/browsers.html#history,它以序列化状态返回,该状态反序列化为对象。这意味着您不能将功能放入其中
  • 是的,你说得对,我不能通过参数传递函数,我们只能传递字符串。我们有没有其他方法可以通过导出 myFun 函数来实现。

标签: reactjs react-router react-router-dom


【解决方案1】:

app.js

$stateProvider

    <omitted>

    .state('send-to', {
      url: '/send-to',
      templateUrl: 'templates/send-to.html',
      controller: 'SendToCtrl'
    })

controllers.js

.controller('SendToCtrl', function($scope, $stateParams, $state) {

    console.log($stateParams);

【讨论】:

  • 它不在 angularjs 中,它在带有 react 路由器的 reactJs 中。
  • yap 但程序相同的兄弟。
猜你喜欢
  • 2019-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多