javascript - Vue Prop 默认值无法正常工作

标签 javascript vue.js ccxt

好的,所以我有以下从父组件获得的 Prop

 props: {
  selectedExchange: {
    default: 'acx',
  }
},

我尝试用下面的方法来使用它

 methods: {
  getMarkets() {
    const ccxt = require('ccxt')
    const exchanges = ccxt.exchanges;
    let marketPair = new ccxt[this.selectedExchange]()
    let markets =  marketPair.load_markets()
    return markets
  }
},

预期的结果应该是我的项目的一系列市场,但我在控制台中收到错误

 [Vue warn]: Error in mounted hook: "TypeError: ccxt[this.selectedExchange] is not a constructor"

现在我认为这可能是 ccxt 的问题,但事实并非如此!我试过下面的代码

methods: {
  getMarkets() {
    const ccxt = require('ccxt')
    const exchanges = ccxt.exchanges;
    let acx = 'acx'
    let marketPair = new ccxt[acx]()
    let markets =  marketPair.load_markets()
    return markets
  }
},

如果你没有看到变化,我做了一个包含'acx'的变量,与 Prop 完全一样,但这次它是在方法内部创建的,使用这段代码我得到了预期的结果,它有困扰我好几天了,我似乎找不到答案,我是否初始化了错误的默认值?当我查看 vue 开发工具时,我的 Prop 的值是 array[0],只有在我将值传递给该 Prop 后它才会更新,我不应该看到 的默认值吗acx 在 devtools 中?非常感谢任何帮助!

编辑1:添加父组件代码

这就是我如何使用父级内部的方法以及我的组件如何相互关联,

<div id="exchange">
  <exchange v-on:returnExchange="updateExchange($event)"></exchange>
</div>
<div id="pair">
  <pair :selectedExchange="this.selectedExchange"></pair>
</div>

这是脚本标签中的代码,我没有包含 import 标签,因为我认为它没有用

export default {
  name: 'App',
  components: { exchange, pair, trades },
  data(){
    return{
      selectedExchange: ''
    }
   },
   methods: {
     updateExchange(updatedExchange){
       this.selectedExchange = updatedExchange
     }
   },
  };

最佳答案

在这种情况下,您将继承默认值:

<pair></pair>

在这种情况下,您将始终继承 selectedExchange 的值,即使它为 null 或 undefined:

<pair :selectedExchange="this.selectedExchange"></pair>

因此,在您的情况下,您必须处理父组件的默认值。

这应该有效:

export default {
  name: 'App',
  components: { exchange, pair, trades },
  data(){
    return{
      selectedExchange: 'acx' // default value
    }
   },
   methods: {
     updateExchange(updatedExchange){
       this.selectedExchange = updatedExchange
     }
   },
  };

关于javascript - Vue Prop 默认值无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52153417/

相关文章:

javascript 表单 cookie - 仅选择前 10 个索引的打开 cookie

Python:如何使用来自不同类的属性

javascript - jquery.get函数url参数

javascript - 如何隐藏浏览器中的查找栏? (在已经调用后通过javascript取消Ctrl+F)

javascript - $ ('#tabs a' ) 和 $ ('#tabs' ) 之间的差异。找到 ('a' )

vue.js - 功能组件的子事件处理程序中的“this”上下文

vue.js - vue-router useRouter 在构建库组件时不起作用

javascript - VueX 通过提交从操作更新状态

python - 我可以从 CCXT API 调用获得原始交换响应吗?