React - Use Advanced JavaScript in React Render Method

Tell us what’s happening:
Describe your issue in detail here.
//the codes fine however, i want to store the user input and paste it before the answer…
ie: is userInput?
answer: is userInput?
possibleAnswers

However, on click userInput gets reset and I want to keep the and then for it to be cleared.
Ive tried implementing delays on the reset but this completely crashes everything

  **Your code so far**
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 = possibleAnswers[this.state.randomIndex]; // 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 */}
          {answer}
        {/* Change code above this line */}
      </p>
    </div>
  );
}
}
  **Your browser information:**

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36

Challenge: React - Use Advanced JavaScript in React Render Method

Link to the challenge:

How did you try to implement the delay, can we see your code?

Also, if you want to keep all the questions and answers you would need to have an array in the state and map it as a list.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.