如何使用按钮在反应中更改让编号

重新排序

我正在尝试更改 let 的值showtext以更改显示的文本。
当我更改showtext代码中的值时,文本会更改,但是当我单击按钮时变量不会更改。

// eslint-disable-next-line eslint-comments/disable-enable-pair
/* eslint-disable no-eval */

import * as React from "react";
import "../../../styles/colour_sdgs.css";
import "../../../styles/infotext.css";
import Logo from "../../../SDGLogos/Goal-06.png";

let showtext = 1;
const sdg = "sdg06";
const text = {
    1: `text1`,
    2: `text2`,
};

function incrementCount(): void {
    showtext++;
}

function decrementCount(): void {
    showtext--;
}

export const sdg06infotext = (): JSX.Element => {
    return (
        <div>
            <div className={`colour_${sdg}`}>
                <div className="header">
                    Hochwertige Bildung <img className="sdglogo" alt="logo" src={Logo} />
                </div>
            </div>
            <div className="infotextbox">
                <p> {text[showtext]} </p>

                <p>blabla</p>
                <p>
                  other text
                </p>
            </div>
            <button type="button" onClick={incrementCount}>
                {showtext}+
            </button>
            <button type="button" onClick={decrementCount}>
                {showtext}-
            </button>
        </div>
    );
};
马泽林

showtext单击按钮时会发生变化;没有改变的是 React 元素树,因此 DOM 保持不变——换句话说,你的应用程序的状态与视图不同步。您需要告诉 React 在showtext更改时重新渲染

要使其工作,您需要移动showtext和在组件内部使用它的函数并使其成为状态值:

const sdg = "sdg06";
const text = {
    1: `text1`,
    2: `text2`,
};

const Sdg06infotext = () => {
    let [showtext, setText] = React.useState(1);

    function incrementCount(): void {
        setText(++showtext);
    }

    function decrementCount(): void {
        setText(--showtext);
    }
    return (
        <div>
            <div className={`colour_${sdg}`}>
                <div className="header">
                    Hochwertige Bildung
                </div>
            </div>
            <div className="infotextbox">
                <p> {text[showtext]} </p>

                <p>blabla</p>
                <p>
                  other text
                </p>
            </div>
            <button type="button" onClick={incrementCount}>
                {showtext}+
            </button>
            <button type="button" onClick={decrementCount}>
                {showtext}-
            </button>
        </div>
    );
};

ReactDOM.render(<Sdg06infotext/>, document.getElementById("root"))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/17.0.2/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.2/umd/react-dom.production.min.js"></script>
<div id="root"></div>

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用jQuery更改Twitter Bootstrap中的按钮

如何在反应导航中更改后退按钮路线

如何更改后退按钮标签,反应导航

如何通过反应导航更改屏幕(使用按钮)

如何在测试中更改反应状态

如何使用Javascript更改模式中按钮的数据目标?

如何使用MVVM在WPF中更改UI按钮

如何仅在本机反应中更改活动按钮的颜色

更改活动NavLink中的按钮的颜色(反应)

如何修复反应中的折叠按钮?

如何默认检查反应中的单选按钮?

如何添加,按钮中的元素反应本机

如何在Power Point中更改编号列表的编号?

如何使用java中的按钮更改文本颜色

单击按钮后在滑块中反应更改幻灯片

如何使用反应按钮调用组件?

如何使用非反应代码模拟 Jest 中的按钮点击

如何更改表格数据以对模式中的按钮做出反应

如何使用javascript中的按钮单击更改导航栏的颜色?

如何在反应中更改按钮名称?

反应如何更改反应数组中对象的值

如何在反应中重定向按钮

如何更改多个按钮的样式并在反应中添加幻灯片动画?

如何更改反应组件中 useRef 对象中保存的按钮的 onClick 函数?

如何在反应中启用禁用的按钮?

无法弄清楚如何使按钮更改数组编号

如何实现使用反应按钮 onClick 更改布尔字段值的 Elasticsearch update_by_query

如何仅在反应挂钩中更改单击按钮的状态

PHP中的按钮更改编号