React-当按钮增加并在另一页面中呈现结果时,最佳计数器会增加计数器?

calvin2011

我是React和Javascript领域的超级新手,并试图通过制作Magic 8 Ball应用程序投入一些开发工作。

我设置了两个页面:

  1. 魔术8球游戏页面
  2. 统计页面显示有关魔术8球问题的信息

游戏页面功能正常工作(使用下面的server.js文件中的代码段),但是我现在想将游戏页面上有关问题总数的信息传递到统计页面。

我的基本想法是:

  • 单击按钮后,我想将计数器增加1
  • 将此计数器值存储在本地存储中,然后返回到“统计信息”页面(现在只想打印)

我遇到过几种不同的方法,但是只需要一些有关最佳方法的指导即可。

在实现此功能之前,我整理了几段内容:

index.js文件

<form className="question-input" method="POST" action="/">
  <input type="text" ref="inputquestion" placeholder="Ask your question..."style={{ width: "300px", fontSize:18 }}/>
  <button id="submitquestion" style={{ width: "100px", fontSize:17 }}>Shake Me!</button>
</form>

server.js文件

  server.post('/', (req,res) => {
    console.log("Received request.")
    const answers = [
      "It is certain.",
      "It is decidedly so.",
      "Without a doubt.",
      "Yes - definitely.",
      "You may rely on it.",
      "As I see it, yes.",
      "Most likely.",
      "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.",
      "Outlook not so good.",
      "Very doubtful."
    ]
    const number = Math.floor(Math.random()*20);
    res.status(200).send(answers[number]);

stats.js文件

class StatsPage extends Component {
  render() {
    return (
      <main>
        <Header />
          <h1>Game Statistics</h1>
          <p> Count: </p>
          <style jsx>{`
            h1 {
              font-family:"Arial";
              font-size:50px;
            }`}
          </style>

      </main>
    )
  }
}

export default StatsPage;

我的问题是:每次在index.js文件中按下按钮(即问一个问题)时,如何在stats.js中呈现一个计数器变量?我应该使用saveToLocalStorage来确保计数器保持保存到其状态并且在每次刷新应用程序时都不会恢复为零吗?

另外-如果有人有任何改进意见,请分享!

谢谢你的时间。

本杰明·帕内尔

如果您是React和JavaScript的新手,那么最好使用localStorage。这是解决问题的最简单的方法,并且是在刷新浏览器时阻止应用程序状态消失的好方法。

这样需要跨页面共享的状态可以保存在包装两个页面组件的父组件中。然后,父组件可以将状态作为道具传递给子组件。该父组件也可以在挂载时尝试从localStorage加载其初始状态(请参阅componentDidMount),并处理将状态写入localStorage的过程。

这是一个jsfiddle,上面是我上面描述的非常简化的示例。

作为附带说明,我看到您使用action属性处理表单提交这将导致您的页面刷新,这可能不是您想要的。一种解决此问题的React方法将使用的onSubmit道具<form>请参阅React文档中示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在recyclerview(的cardview)中单击按钮增加计数器

如何在SQLAlchemy中增加计数器

如何在CSS代码中增加计数器?

Firebase如何在离线时增加计数器?

在字典中增加计数器的最快方法

在递归函数调用中增加计数器

排序排序并增加计数器

Redux计数器基本示例不增加计数

如何在同一页面中使用多个this.state计数器来增加单独的变量

每次在带有Formik的React中完成输入字段时都要尝试做一个计数器

如何在React中使用一个按钮重置多个计数器

React立即增加所有计数器:如何为多个组件重用处理程序函数

试图在react中更新计数器的状态

我已经通过react.js类组件创建了一个计数器,但是它没有增加,我不知道它是怎么了

在React.js中单击鼠标时不断增加计数器

我如何创建一个单击时增加计数器的按钮?

在react中添加一个计数器

在Java和C ++中增加计数器的最佳方法?

角度:长按增加计数器

单击按钮时增加计数器值,然后重新使用值

SESSION循环,增加计数器

单击java脚本中的按钮时如何增加计数器值

在 for 循环中增加计数器

React - 刷新保存计数器

如何通过单击按钮增加计数器的值?

在python中分配计数器时增加计数器

单击正确的图像时如何增加计数器

计数器编号不变(React JS)

如何创建一个计数器作为组件多次使用并创建一个按钮来重置 React JS 中的所有计数器?