import React from 'react'; import ReactDOM from 'react-dom'; import ListItem from '../component/ListItem' import 'antd-mobile/dist/antd-mobile.css'; import { Button } from 'antd-mobile'; import { NavBar, Icon } from 'antd-mobile'; import { SearchBar, WhiteSpace, WingBlank } from 'antd-mobile'; import { Tabs, Badge } from 'antd-mobile'; import { TabBar } from 'antd-mobile'; import { withRouter } from 'react-router-dom'; import api from '../common/api' import { Provider,connect } from "react-redux" import { userStore ,mapStateToProps,gloableObject} from '../redux/index' const tabs2 = [ { title: '推荐', sub: '1' }, { title: 'hot', sub: '2' }, { title: '1', sub: '3' }, { title: '2', sub: '4' }, { title: '3', sub: '5' }, ]; const HeaderTabExample = () => ( <div> <Tabs tabs={tabs2} initialPage={1} tabBarPosition="top" renderTab={tab => <span>{tab.title}</span>} > </Tabs> </div> ); class TabBarExample extends React.Component { constructor(props) { super(props); this.state = { selectedTab: 'redTab', hidden: false, fullScreen: false, }; } renderContent(pageText) { return (<div></div> ); } render() { return ( <div style={this.state.fullScreen ? { position: 'fixed', height: '100%', '100%', top: 0 } : { height: 40 }}> <TabBar unselectedTintColor="#949494" tintColor="#33A3F4" barTintColor="white" hidden={this.state.hidden} > <TabBar.Item title="Life" key="Life" icon={<div style={{ '22px', height: '5px', }} /> } selectedIcon={<div style={{ '22px', height: '5px', }} /> } selected={this.state.selectedTab === 'blueTab'} onPress={() => { this.setState({ selectedTab: 'blueTab', }); }} data-seed="logId" > {this.renderContent('Life')} </TabBar.Item> <TabBar.Item icon={ <div style={{ '22px', height: '5px', }} /> } selectedIcon={ <div style={{ '22px', height: '5px', }} /> } title="Koubei" key="Koubei" selected={this.state.selectedTab === 'redTab'} onPress={() => { this.setState({ selectedTab: 'redTab', }); this.props.history.push('/add'); }} data-seed="logId1" > {this.renderContent('Koubei')} </TabBar.Item> { this.props.isLogin?<TabBar.Item icon={ <div style={{ '22px', height: '5px', }} /> } selectedIcon={ <div style={{ '22px', height: '5px', }} /> } title="我的" key="my" selected={this.state.selectedTab === 'yellowTab'} onPress={() => { this.setState({ selectedTab: 'yellowTab', }); this.props.history.push('/user'); }} > {this.renderContent('My')} </TabBar.Item>: <TabBar.Item icon={ <div style={{ '22px', height: '5px', }} /> } selectedIcon={ <div style={{ '22px', height: '5px', }} /> } title="登录" key="my" selected={this.state.selectedTab === 'yellowTab'} onPress={() => { this.setState({ selectedTab: 'yellowTab', }); this.props.history.push('/login'); }} > {this.renderContent('My')} </TabBar.Item>} </TabBar> </div> ); } } // {/* badge={1}*/} const MyTabBarExample=withRouter(TabBarExample); const MBottomTabBar = connect(mapStateToProps)(MyTabBarExample); class Main extends React.Component { constructor(props) { super(props); this.state = { value: null, name:'', list:[], refresh:0, }; }//<li>2小时前</li> async componentDidMount(){ let a=gloableObject.articleList; if(a.length==0) this.getNextList() else { this.setState({list:a}) console.log(gloableObject) debugger //alert(gloableObject.sTop) document.documentElement.scrollTop =gloableObject.sTop document.body.scrollTop = gloableObject.sTop window.scrollTo(100,500); } } async getNextList(){ /* let ret = await api.get('/api/article/list') console.log(ret) let a = this.state.list.concat(ret) */ let a = [{title:'haha',id:1}, ] this.setState({list:a}) this.setState({refresh:this.state.refresh+1}) gloableObject.articleList = a; } componentWillMount(){ console.log('11') window.addEventListener('scroll',()=>{ let h =window.pageYOffset + window.innerHeight >= document.documentElement.scrollHeight // alert(document.body.scrollTop+' '+document.documentElement.scrollTop) var sTop = document.documentElement.scrollTop || document.body.scrollTop; //先这样 if(sTop!=0) gloableObject.sTop = sTop; console.log(window.pageYOffset , window.innerHeight,document.documentElement.scrollHeight ) console.log(h) if(h) { this.getNextList() // alert('底') } }) } render() { const {} = this.props; return ( <div> {/* <SearchBar style={{backgroundColor:'#108ee9'}} placeholder="自动获取光标" /> */} <div style={{position:'fixed',top:'0px','100%'}}> <HeaderTabExample /> </div> <WhiteSpace /> <div style={{marginTop:'40px',lineHeight:'140%', overflow: 'scroll' }}> {this.state.list.map(val => ( <ListItem title={val.title} id={val.id} /> ))} </div> <div style={{position:'fixed',bottom:'0px','100%'}}> <MBottomTabBar /> </div> </div> ) } } export default Main;