Skip to main content

creating a dynamic tabbar in reactjs

working link
https://stackblitz.com/edit/react-scyhqh


import React, { Component } from 'react';
import { render } from 'react-dom';
import Hello from './Hello';
import './style.css';
function TabButton(props)
{
return <button className="button" onClick={()=>{
if(props.onClick!=null)
{
props.onClick({label:props.label});
}
}}>{props.label}</button>
}
class App extends Component {

constructor() {
super();
this.currentPage=0;
this.totalPage=4;
this.buttonData=[
{label:"manish1"},
{label:"sachin2"},
{label:"deepak3"},
{label:"sanjay4"},
{label:"manish21"},
{label:"sachin22"},
{label:"deepak23"},
{label:"sanjay24"},
{label:"manish31"},
{label:"sachin32"},
{label:"deepak33"},
{label:"sanjay34"},
{label:"manish41"},
{label:"sachin42"},
{label:"deepak43"},
{label:"sanjay44"},
];
this.state = {
name: "",
buttonData:this.getFrom(this.currentPage,this.totalPage)
};
}
componentWillMount()
{
this.setState({name:this.buttonData[0].label});
}
getFrom(from,to)
{
var arr=[];
for(var i=from;i<to;i++)
{
arr.push(this.buttonData[i]);
}
return arr;
}
onTabButtonPressed(data)
{
this.setState({name:data.label});
}
nextAction()
{
if(this.totalPage==this.buttonData.length)
{
this.totalPage=this.buttonData.length;
return;
}
this.currentPage+=4;
this.totalPage+=4;
this.setState({buttonData:this.getFrom(this.currentPage,this.totalPage)});
}
preAction()
{
if(this.totalPage==4)
{
this.totalPage=4;
return;
}
this.currentPage-=4;
this.totalPage-=4;
this.setState({buttonData:this.getFrom(this.currentPage,this.totalPage)});
}
render() {
return (
<div>
<TabButton label="back" onClick={(data)=>{
this.preAction();
}}></TabButton>
{
this.state.buttonData.map((value,index)=>{
return <TabButton label={value.label} key={index}onClick={(data)=>{
this.onTabButtonPressed(data);
}}></TabButton>
})
}
<TabButton label="next" onClick={(data)=>{
this.nextAction();
}}></TabButton>
<div className="card">
<div className="container">
<h4><b>{this.state.name}</b></h4>
<p>Architect & Engineer</p>
</div>
</div>
</div>
);
}
}

render(<App />, document.getElementById('root'));

Comments

Popular posts from this blog

Better Memory management with PixiJS or How to manage cpu and cpu memory in PixiJS.

PixiJS is my favorite framework when i am looking for a web games specially for mobile or desktop  PixiJS is fast blazing fast and you can get a decent FPS even on older device.   so here is my optimization techniques for PixiJs 1. manage your sprites in a better way use spritesheet to reduce the draw calls create big sprite sheet which contain multiple sprites can be draw in gpu with a single draw call. use TexturePacker  https://www.codeandweb.com/texturepacker  best tool when its comes to spritesheet 2. for floating point calculation round off calculation for example let  speed = 0.75 ; let  position = 100 ; console . log ( Math . round ( speed * position )) 3. don't create very big canvas when u need a big canvas size game just try to create a small canvas and translate it. 4. its very important one managing TextureCache in memory you can get all TextureCache list by using  Object.entries(PIXI.utils.TextureCache); so even you use ap...

adding particles Effect in pixijs using https://pixijs.io/pixi-particles-editor/

adding particle in pixijs is very easy using the below tool more information can be found below https://github.com/pixijs/pixi-particles https://pixijs.io/pixi-particles-editor/ required packages  /// < reference path = "node_modules/pixi-particles/ambient.d.ts" /> import 'pixi-particles' code of particle delcare a     global variable   private emitter ?: Emitter ; const img = PIXI . Texture . from ( "./assets/images/particle.png" ); this . emitter = new Emitter ( this ,[ img ],{ "alpha" : { "start" : 0.62 , "end" : 0.39 }, "scale" : { "start" : 0.1 , "end" : 0.9 , "minimumScaleMultiplier" : 1.25 }, "color" : { "start" : "#ffff8f" , "end" : ...