函数() 分配给属性未在 React native 中执行



我想根据 Redux 存储中的值显示一个按钮。我要动态传递的按钮属性。

const state = appStore.getState();
let opts = {};
if(state.bottomBar.tabName === 'TEST') {
opts['btn1'] = `${this.btnText()}`; // Returns text
opts['onBtn1Press'] = `${ () => this.addToTest() }`; // Returns function()
} else {
opts['btn1'] = 'Testing';
opts['onBtn1Press'] = `${ () => this.doSomething()}`;
}

我传递了如下属性:

<UiContainer {...opts}>

UiContainer组件中,另一个Footer组件包含如下代码:

<TouchableOpacity onPress={() => onBtn1Press()}  disabled={Btn1Disabled} >
<View >                        
<Text >{btn1}</Text>
</View>
</TouchableOpacity>

如果我打印ops

打印如下:
Object {
"btn1": "TEST",
"onBtn1Press": "function () {
return _this4.addToTest();
}",
}

当我单击按钮时,它显示_onBtn1Press()不是一个函数

我该如何解决它?

问候

萨尼什。

模板

`${() => this.addToTest()}`

始终返回一个字符串,这就是为什么当您打印值时它周围有"的原因。

你想定义一个函数

if(state.bottomBar.tabName === 'TEST') {
opts['btn1'] = `${this.btnText()}`; // Returns text
opts['onBtn1Press'] = () => this.addToTest(); // Returns function()
} else {
opts['btn1'] = 'Testing';
opts['onBtn1Press'] = () => this.doSomething();
}

最新更新