首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CXJS在控制器中使用参数

CXJS在控制器中使用参数
EN

Stack Overflow用户
提问于 2018-04-29 16:05:18
回答 2查看 88关注 0票数 1

如何在功能组件的控制器中使用参数?

https://docs.cxjs.io/concepts/functional-components一样

假设我做了一个待办事项列表应用程序,它有一个带有数据绑定的列表组件和一个待办事项条目组件,但是条目具有如此多的逻辑,以至于它有自己的控制器。

如何像文档的增强示例那样访问控制器中的这些参数:

代码语言:javascript
复制
const LineChart = ({ data, chartStyle, lineStyle }) => <cx>
    <Svg style={chartStyle} controller={MyController}>
        <Chart offset="20 -20 -40 40" axes={{ x: { type: NumericAxis }, y: { type: NumericAxis, vertical: true } }}>
            <Gridlines/>
            <LineGraph data={data} lineStyle={lineStyle} />
        </Chart>
    </Svg>
</cx>;




    class MyController extends Controller {
        onInit() {
            //use Parameter chartStyle in code.
    var myparameter = {{chartStyle}}; //??? < how do i get the value 
    ....
        }

    }
EN

回答 2

Stack Overflow用户

发布于 2018-04-29 17:01:19

您可以将参数传递给控制器:

代码语言:javascript
复制
const LineChart = ({ data, chartStyle, lineStyle }) => <cx>
    <Svg style={chartStyle} controller={{ type: MyController, chartStyle }}>
        <Chart offset="20 -20 -40 40" axes={{ x: { type: NumericAxis }, y: { type: NumericAxis, vertical: true } }}>
            <Gridlines/>
            <LineGraph data={data} lineStyle={lineStyle} />
        </Chart>
    </Svg>
</cx>;
票数 1
EN

Stack Overflow用户

发布于 2018-12-14 16:40:05

将参数传递给控制器的另一种方法是使用控制器工厂函数,并通过函数闭包使参数可用。这种方法的另一个好处是,我们可以在控制器中使用自定义参数名称。

代码语言:javascript
复制
const LineChart = ({ data, chartStyle, lineStyle }) => <cx>
    <Svg style={chartStyle} controller={getController(chartStyle)}>
        <Chart offset="20 -20 -40 40" axes={{ x: { type: NumericAxis }, y: { type: NumericAxis, vertical: true } }}>
            <Gridlines/>
            <LineGraph data={data} lineStyle={lineStyle} />
        </Chart>
    </Svg>
</cx>;

// controller factory
function getController(style) { 
    return class MyController extends Controller {
        onInit() {
            // now `chartStyle` is available as `style` within controller via function closure
            console.log(style);
            ....
        }
    };
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50084571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档