Wix React-Native-Navigation:自定义组件按钮的 onPress
Wix React-Native-Navigation: onPress for custom component button
我按照给定的示例 here 编写了一个自定义右导航按钮。但是,似乎 onNavigatorEvent()
方法在使用自定义组件时不再被调用。我什至尝试将 onPress 事件作为道具传递给我的自定义组件,但它以 undefined
的形式传递。有什么我想念的吗?
这就是我将 onPress 道具传递给创建按钮的函数的方式:
Navigation.registerComponent('DoneButton', () => DoneButton);
const DoneButton = ({text, backgroundColor, textColor, onPressAction}) => {
var containerStyle = [{backgroundColor: backgroundColor, width: 70, height:30, justifyContent:'center', borderRadius:4, shadowColor:'black', shadowOpacity:0.2, shadowRadius:1, shadowOffset:{width:0, height:2}}];
return(
<TouchableOpacity style={containerStyle} onPress={onPressAction}>
<Text style={[{color:textColor, textAlign: 'center', fontSize:16}]}>
{text}
</Text>
</TouchableOpacity>
);
}
_renderDoneButton(){
this.props.navigator.setButtons({
rightButtons: [
{
id: 'Done'
component: 'DoneButton',
passProps: this._DoneButtonProps(),
}],
})
}
_DoneButtonProps(){
return {
text: 'Done',
backgroundColor: 'green',
textColor: 'white',
onPressAction: this._doneAction.bind(this)
}
}
_doneAction(){
alert('Done');
}
从 1.1.282 版本开始,您可以将不可序列化的属性传递给自定义按钮,因此您传递的 onPress 方法应该可以工作。
我按照给定的示例 here 编写了一个自定义右导航按钮。但是,似乎 onNavigatorEvent()
方法在使用自定义组件时不再被调用。我什至尝试将 onPress 事件作为道具传递给我的自定义组件,但它以 undefined
的形式传递。有什么我想念的吗?
这就是我将 onPress 道具传递给创建按钮的函数的方式:
Navigation.registerComponent('DoneButton', () => DoneButton);
const DoneButton = ({text, backgroundColor, textColor, onPressAction}) => {
var containerStyle = [{backgroundColor: backgroundColor, width: 70, height:30, justifyContent:'center', borderRadius:4, shadowColor:'black', shadowOpacity:0.2, shadowRadius:1, shadowOffset:{width:0, height:2}}];
return(
<TouchableOpacity style={containerStyle} onPress={onPressAction}>
<Text style={[{color:textColor, textAlign: 'center', fontSize:16}]}>
{text}
</Text>
</TouchableOpacity>
);
}
_renderDoneButton(){
this.props.navigator.setButtons({
rightButtons: [
{
id: 'Done'
component: 'DoneButton',
passProps: this._DoneButtonProps(),
}],
})
}
_DoneButtonProps(){
return {
text: 'Done',
backgroundColor: 'green',
textColor: 'white',
onPressAction: this._doneAction.bind(this)
}
}
_doneAction(){
alert('Done');
}
从 1.1.282 版本开始,您可以将不可序列化的属性传递给自定义按钮,因此您传递的 onPress 方法应该可以工作。