在Vue中作为prop传递的对象以字符串形式到达

时间:2019-09-10 16:55:55

标签: javascript string object vue.js vue-component

https://jsfiddle.net/2xwo87bs/
为了让Vue处理传递给组件的对象prop,我必须首先将字符串转换为对象(在代码段中,我已经轻松地使用了JSON.parse())。有没有一种方法可以将真正的javascript对象作为道具直接传递给组件,而无需将其解释为字符串?注意,我将多次使用该组件,这会使单个data()对象传递到prop中,然后将该道具用于v-bind的prop中,每次使用都不切实际

1 个答案:

答案 0 :(得分:1)

通过这样的道具时:

    private void Automation_Checked(object sender, RoutedEventArgs e)
    {
        CheckBox cb = (CheckBox)sender;
        if (cb.IsChecked == true)
        {
            twtr = new TwitterBot(totalPicTBox.Text);
            BackgroundWorker worker = new BackgroundWorker();
            worker.DoWork += Worker_DoWork;
            worker.RunWorkerCompleted += Worker_Completed;
            worker.RunWorkerAsync();
        }
    }

    private void Worker_DoWork(object sender, DoWorkEventArgs e)
    {
        twtr.UploadPics(twtr.results, startT, endT));
        // This is calling a global var of an instantiated class that has a method to upload pictures to twitter.

    }
    private void Worker_Completed(object sender, RunWorkerCompletedEventArgs e)
    {
        MessageBox.Show("Completed the work/uploads.");
    }

...您实际上是在传递字符串<component ok='{"data-x":1}'></component> 作为prop值。

您需要使用绑定来评估道具价值:

'{"data-x":1}'

...或使用速记版本:

<component v-bind:ok='{"data-x":1}'></component>

通过这种方式,对象<component :ok='{"data-x":1}'></component> 作为prop值被传递。