weex-nuke
Version:
基于 Rax 、Weex 的高性能组件体系 ~~
150 lines (140 loc) • 3.03 kB
JSX
/** @jsx createElement */
import { createElement, Component, render } from 'rax';
import View from 'nuke-view';
import Text from 'nuke-text';
import Page from 'nuke-page';
import Button from 'nuke-button';
import Picker from 'nuke-web-picker';
import { StyleProvider } from 'nuke-theme-provider';
import {
decodeVar,
DemoContainer,
DemoSection,
Demo,
DemoItem,
initDemo,
} from '@alife/nuke-demo-helper';
const data0 = [
{ key: 'complex', value: '综合排序' },
{ key: 'sale', value: '销量优先' },
{ key: 'distance', value: '距离最近' },
{ key: 'credit', value: '信用优先' },
];
const data1 = [
{
value: '浙江',
key: 'zhejiang',
children: [
{
value: '杭州',
key: '310000',
},
{
value: '宁波',
key: '315000',
},
],
},
{
value: '江苏',
key: 'jiangsu',
children: [
{
value: '南京',
key: '210000',
},
{
value: '无锡',
key: '214000',
},
{
value: '镇江',
key: '212000',
},
],
},
];
const App = class NukeDemoIndex extends Component {
constructor() {
super();
this.state = {
data: '',
selected: 'complex',
cascadeProvince: 'jiangsu',
cascadeCity: '210000',
};
}
componentDidMount() {
Picker.show(
{
title: 'Please select',
dataSource: data0,
selectedKey: this.state.selected,
hasToolbar: true,
hasToolbarButton: true,
renderMask: false,
container: this.refs.pickerRoot,
style: {
left: 'auto',
position: 'initial',
bottom: 'auto',
width: '100%',
},
},
(result) => {},
(e) => {
console.log('canceled');
}
);
// this.refs.picker.wrappedInstance.show();
}
render() {
const pickerProps = {
title: '请选择',
dataSource: data0,
selectedKey: this.state.selected,
hasToolbar: true,
hasToolbarButton: true,
};
return (
<StyleProvider style={decodeVar(this.props.variable)}>
<DemoContainer>
<DemoSection title="普通样式">
<Demo>
<DemoItem direction="column">
<View
ref="pickerRoot"
style={{ height: 600, backgroundColor: '#cccccc' }}
/>
</DemoItem>
</Demo>
</DemoSection>
</DemoContainer>
</StyleProvider>
);
}
};
const styles = {
result: {
height: '480rem',
margin: '30rem',
padding: '10rem',
backgroundColor: '#ffffff',
justifyContent: 'center',
alignItems: 'center',
},
resultText: {
fontSize: '28rem',
},
btns: {
margin: '30rem',
},
btn: {
marginBottom: '30rem',
},
};
window.renderDemo = function (lang, variable) {
render(<App variable={variable} />);
};
renderDemo('en-us', window.THEME_VARIABLE);
initDemo('web-picker');