Reputation: 37
In my application there is two component called Employee and EmplyeeButtonGroup.
export default class Employee extends Component {
render() {
return (
<h1>Permanent</h1>
<EmplyeeButtonGroup />
<EmplyeeButtonGroup />
<h1>Temporary</h1>
<EmplyeeButtonGroup />
<EmplyeeButtonGroup />
)}
}
export default class EmplyeeButtonGroup extends Component {
render() {
return (
<Button>Add</Button>
<Button>Delete</Button>
<Button>Send</Button>
)}
}
Under the <h1>Temporary</h1>
this heading, I want to disable Delete and Add buttons.I can do this by creating two component for temporary and permanent employees. But I am looking for another way. How can I do this using react?
Thanks in advance.
Upvotes: 0
Views: 370
Reputation: 4536
class Employee extends React.Component {
//...
render() {
return (
<React.Fragment>
<h1>Permanent</h1>
{/* Just add whatever buttons want to enable as a prop */}
<EmplyeeButtonGroup add delete send />
<h1>Temporary</h1>
<EmplyeeButtonGroup send />
</React.Fragment>
);
}
}
class EmplyeeButtonGroup extends React.Component {
//...
render() {
return (
<React.Fragment>
<button disabled={!this.props.add}>
Add
</button>
<button disabled={!this.props.delete}>
Delete
</button>
<button disabled={!this.props.send}>
Send
</button>
</React.Fragment>
);
}
}
function App() {
return (
<div className="App">
<Employee />
</div>
)
}
ReactDOM.render(<App /> , document.getElementById('root'))
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<div id="root"></div>
Upvotes: 1
Reputation: 2235
export default class Employee extends Component {
render() {
return (
<h1>Permanent</h1>
<EmplyeeButtonGroup event = 'False'/>
<EmplyeeButtonGroup event = 'False'/>
<h1>Temporary</h1>
<EmplyeeButtonGroup event = 'True'/>
<EmplyeeButtonGroup event = 'True'/>
)}
}
export default class EmplyeeButtonGroup extends Component {
render() {
return (
<button disable = {(this.props.event)==='True'?"true":"false"}>Add</button>
<button disable = {(this.props.event)==='True'?"true":"false"}>Delete</button>
<button>Send</button>
)}
}
Upvotes: 0