An Interest In:
Web News this Week
- April 19, 2024
- April 18, 2024
- April 17, 2024
- April 16, 2024
- April 15, 2024
- April 14, 2024
- April 13, 2024
November 15, 2021 05:08 pm GMT
Original Link: https://dev.to/rthefounding/react-use-advanced-javascript-in-react-render-method-3hn0
React: Use Advanced JavaScript in React Render Method
- Welcome everyone and a great morning to you all. Today we will continue the freecodecamp lessons with this. In previous posts, we've gone over how to use JavaScript code into JSX code using curly braces,
{ }
, for accessing props, passing props, accessing state, inserting comments into your code and as well as styling your components. - You can also write JavaScript directly in your render methods, before the return statement, without inserting it inside of curly braces. This is because it is not yet within the JSX code.
- In the code that I'm about to show you is a render method which has an array that contains 20 phrases to represent the answer. The button click event is bound to the
ask
method, so each time the button is clicked a random number will be generated and stored as therandomIndex
in state. We have to change line 52, and reassign theanswer
const so ou code randomly accesses a different index of thepossibleAnswers
array each time it updates. - Code:
const inputStyle = { width: 235, margin: 5};class MagicEightBall extends React.Component { constructor(props) { super(props); this.state = { userInput: '', randomIndex: '' }; this.ask = this.ask.bind(this); this.handleChange = this.handleChange.bind(this); } ask() { if (this.state.userInput) { this.setState({ randomIndex: Math.floor(Math.random() * 20), userInput: '' }); } } handleChange(event) { this.setState({ userInput: event.target.value }); } render() { const possibleAnswers = [ 'It is certain', 'It is decidedly so', 'Without a doubt', 'Yes, definitely', 'You may rely on it', 'As I see it, yes', 'Outlook good', 'Yes', 'Signs point to yes', 'Reply hazy try again', 'Ask again later', 'Better not tell you now', 'Cannot predict now', 'Concentrate and ask again', "Don't count on it", 'My reply is no', 'My sources say no', 'Most likely', 'Outlook not so good', 'Very doubtful' ]; const answer = // Change this line return ( <div> <input type='text' value={this.state.userInput} onChange={this.handleChange} style={inputStyle} /> <br /> <button onClick={this.ask}>Ask the Magic Eight Ball!</button> <br /> <h3>Answer:</h3> <p> {/* Change code below this line */} {/* Change code above this line */} </p> </div> ); }}
- Answer:
const answer = possibleAnswers[this.state.randomIndex]; return ( <div> <input type='text' value={this.state.userInput} onChange={this.handleChange} style={inputStyle} /> <br /> <button onClick={this.ask}>Ask the Magic Eight Ball!</button> <br /> <h3>Answer:</h3> <p> {answer} </p> </div> ); }}
Larson, Q., 2019. Frontend Development Libraries. [online] Freecodecamp.org. Available at: https://www.freecodecamp.org/learn/front-end-development-libraries/react
Original Link: https://dev.to/rthefounding/react-use-advanced-javascript-in-react-render-method-3hn0
Share this article:
Tweet
View Full Article
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To