Можете ли вы использовать вывод из функции как @Bindable, когда ввод @Bindable - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть некоторые переменные @Bindable в представлении, и я хочу использовать их как входные данные для функции. Затем я хочу использовать вывод в качестве привязываемого ввода в другом представлении. Я хочу убедиться, что при изменении одного из входных данных представление, в котором я использую выходные данные, обновляется. Я надеялся, что что-то подобное сработает, но это не

struct GraphView: View {
    @Binding var list: [SomeClass]
    @Binding var options: OptionClass

    var body: some View {
        PlotView(refinedData: $(SomeService.dataRefiner(list: $list, options: $options)
        }

    }
}

Можно ли заставить его работать или я должен структурировать свой код по-другому?

1 Ответ

1 голос
/ 18 апреля 2020

A Binding - это что-то вроде get и set, поэтому вы можете написать свою собственную привязку.

Например:

var refinedData: Binding<MyData>(
    get: {
        SomeService.dataRefiner(list: list, options: options)
    },
    set: {
        // your code here
    }

var body: some View {
    PlotView(refinedData: refinedData)
}
...