为odoo反应本机应用程序
Posted
技术标签:
【中文标题】为odoo反应本机应用程序【英文标题】:react native application for odoo 【发布时间】:2018-09-11 11:07:54 【问题描述】:我想为 Odoo ERP 系统中的假期请求制作移动应用程序。我使用本机反应来制作应用程序。问题是我试图从用户那里获取输入,然后将其传递给 Odoo API 以在系统中提交,但我找不到一个好的方法来做到这一点
Odoo api - xmlrpc:
var Odoo = require('odoo-xmlrpc');
var odoo = new Odoo(
url: 'http://abdelazizs-macbook-pro.local',
port: '8069',
db: 'hr_2-9_test_11',
username: 'admin',
password: 'admin'
);
odoo.connect(function (err)
if (err) return console.log(err);
console.log('Connected to Odoo server.');
);
odoo.connect(function (err)
if (err) return console.log(err);
console.log('Connected to Odoo server.');
var inParams = [];
inParams.push('name': 'egg'
,'holiday_status_id':parseInt(1)
, 'date_from':'2018-08-14 16:35:38'
, 'date_to':'2018-08-16 16:35:38'
, 'employee_id':parseInt(1))
var params = [];
params.push(inParams);
odoo.execute_kw('hr.holidays', 'create', params, function (err, value)
if (err) return console.log(err);
console.log('Result: ', value);
);
);
我们想用用户输入替换这些默认参数
'name': 'egg'
,'holiday_status_id':parseInt(1)
, 'date_from':'2018-08-14 16:35:38'
, 'date_to':'2018-08-16 16:35:38'
, 'employee_id':parseInt(1)
这是选择日期的应用组件之一:
import React, Component from 'react';
import DatePicker from 'react-native-datepicker';
import Text, View from 'react-native';
export default class Component1 extends Component
constructor(props)
super(props)
this.state = date:"2019-05-15"
render()
return(
<View>
<Text style=fontSize:25,>From</Text>
<DatePicker
style=width: 300,justifyContent: 'center',
date=this.state.date
mode="date"
placeholder="select date"
format="YYYY-MM-DD"
confirmBtnText="Confirm"
cancelBtnText="Cancel"
customStyles=
dateIcon:
position: 'absolute',
right: 0,
top: 4,
marginRight: 10
,
dateInput:
marginLeft: 36
// ... You can check the source to find the other keys.
onDateChange=(date) => this.setState(date: date)
/>
</View>
);
【问题讨论】:
【参考方案1】:你必须像这样对你的组件进行调用
class MyComponent extends React.Component
state =
date: ''
callToOdoo = () =>
//your odoo call
dateHandler = (date) =>
this.setState(date: date, () =>
this.callToOdoo();
)
render()
return(<View>
<DatePicker
...
onDateChange=this.dateHandler
/>
【讨论】:
以上是关于为odoo反应本机应用程序的主要内容,如果未能解决你的问题,请参考以下文章
为android构建应用程序时用于cameraview的多个文件反应本机
如何在本机反应中为整个应用程序(如每个屏幕)在屏幕底部显示自定义视图