【问题标题】:Sending parameters with history.back()?使用 history.back() 发送参数?
【发布时间】:2023-01-17 01:36:06
【问题描述】:

在 LWC 中使用 history.back() 时,是否可以将 track/api 变量发送到下一个 cmp。

        this.var1 = false;
        var compDefinition = {
            componentDef: "c:Component-to-navigate",
            attributes: {
                leadId: this.SomeLeadId,
                SomeId: this.SomeId,                   
                Variable-To-send: true
            }
        };
        var encodedCompDef = btoa(JSON.stringify(compDefinition));
        this[NavigationMixin.Navigate]({
            type: 'standard__webPage',
            attributes: {
                url: '/one/one.app#' + encodedCompDef
            }
        });

而不是这个我想使用 history.back(),并且还需要传递'Variable-To-send'这甚至可能吗?直接用 onclick 函数试过,不工作。 除了导航还有别的办法吗?基本上我不想重新加载上一页。 ?尝试了 history.back()、windows.location = 等,但无法通过相同的..

如果可能,请帮助解决方法谢谢。

【问题讨论】:

  • 我对 history.back 的理解是浏览器从缓存中读取页面,没有新的 Paramus,没有网络旅行。 “撤消”已经调用了本地内容,就好像向前导航从未发生过一样……

标签: javascript navigation salesforce salesforce-lightning lwc


【解决方案1】:

好吧,history.back() 方法加载历史列表中的上一个 URL(页面),并且仅在上一个页面存在时才有效。

因此,我们不能在调用 history.back() 时设置任何参数。

然而,我们可以通过使用一些临时存储来模拟同样的事情,这些临时存储可以存储我们想要在页面之间传递给其他组件的参数值。

为此,我们可以使用:

  • 本地存储
  • 会话存储
  • 饼干
  • 或我们可以保存数据和访问的任何其他存储位置:)

例子: 我们可以像下面这样使用本地存储:

// to set the param value
localStorage.setItem('param1', 'value1');
localStorage.setItem('param2', 'value2');

// going back or any navigation
history.back();

// to get the value at any other place
const param1 = localStorage.getItem('param1');
const param2 = localStorage.getItem('param2');


// to remove the data from storage
localStorage.removeItem('param1');
localStorage.removeItem('param2');

// or 

localStorage.clear();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    • 2018-02-15
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多