首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么不更新视图呢?

为什么不更新视图呢?
EN

Stack Overflow用户
提问于 2021-06-28 11:38:41
回答 4查看 34关注 0票数 0

HelloWorld函数中的console.log函数正在显示更新状态,那么为什么渲染函数中的段落没有更新?我似乎不能修复渲染而不是更新。代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import {configureStore} from '@reduxjs/toolkit';
var initialState = {value: 0};
function counterReducer(state=initialState,action) {
    if(action.type === 'counter/increment') {
        return { 
            ...state,
            value: state.value + 1
        }
    } else {
        return state;
    }
}
const store = configureStore({reducer: counterReducer});
store.dispatch({type: 'counter/increment'});
class Counter extends React.Component {
    HelloWorld = () => {
        store.dispatch({type: 'counter/increment'});
        console.log(store.getState().value);
    }
    render() {
        return (
            <div>
            <p>{store.getState().value}</p>
            <button onClick={this.HelloWorld}>Add</button>
            </div>
        );
    }
}
ReactDOM.render(<Counter />,document.getElementById('root'));
EN

回答 4

Stack Overflow用户

发布于 2021-06-29 12:15:19

我必须使用'React-Redux‘和@ReduxJS/toolkit来获取render()函数来更新网页。让ReduxJS/toolkit更新网页而不使用'React-Redux'?答:你使用store.subscribe()函数代替,例如)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import {configureStore} from '@reduxjs/toolkit';
var initialState = {value: 0};
function counterReducer(state=initialState,action) {
    if(action.type === 'counter/increment') {
        return { 
            ...state,
            value: state.value + 1
        }
    } else {
        return state;
    }
}
const store = configureStore({reducer: counterReducer});
class Counter extends React.Component {
    HelloWorld = () => {
        store.dispatch({type: 'counter/increment'});
        console.log(store.getState().value);
    }
    render() {
        return (
            <div>
            <p id="update"></p>
            <button onClick={this.HelloWorld}>Add</button>
            </div>
        );
    }
}
function Two() {
    document.getElementById("update").innerHTML = store.getState().value;
}
store.subscribe(Two);
ReactDOM.render(<Counter />,document.getElementById('root'));

更多信息Why

票数 0
EN

Stack Overflow用户

发布于 2021-06-30 12:25:17

下面是如何使用React-Redux来做ReduxJS/toolkit:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react';
import ReactDOM from 'react-dom';
import {configureStore} from '@reduxjs/toolkit';
import {Provider,useSelector} from 'react-redux';
var initialState = {value: 0};
function counterReducer(state=initialState,action) {
    if(action.type === 'counter/increment') {
        return {
            ...state,
            value: state.value+1
        };
    }
    return state;
}
const store = configureStore({reducer: counterReducer});
function Counter() {
    function HelloWorld() {
        store.dispatch({type: 'counter/increment'});
    }
    let x = useSelector((state) => state.value);
    return (
        <div>
        <p>{x}</p>
        <button onClick={HelloWorld}>Add</button>
        </div>
    );
}
ReactDOM.render(
  <Provider store={store}>
    <Counter />
  </Provider>,
  document.getElementById('root')
);
票数 0
EN

Stack Overflow用户

发布于 2021-07-01 15:45:37

如何回答mapStateToProps (老式的方式)?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react';
import ReactDOM from 'react-dom';
import {configureStore} from '@reduxjs/toolkit';
import {Provider,connect} from 'react-redux';
var initialState = {value: 0};
function counterReducer(state=initialState,action) {
    if(action.type === 'counter/increment') {
        return {
            ...state,
            value: state.value+1
        };
    }
    return state;
}
const store = configureStore({reducer: counterReducer});
function Counter(props) {
    function HelloWorld() {
        store.dispatch({type: 'counter/increment'});
    }
    return (
        <div>
        <p>{props.x}</p>
        <button onClick={HelloWorld}>Add</button>
        </div>
    );
}
const mapStateToProps = (state) => ({
    x: state.value
})
Counter = connect(mapStateToProps)(Counter);
ReactDOM.render(
  <Provider store={store}>
    <Counter />
  </Provider>,
  document.getElementById('root')
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68162697

复制
相关文章
react onclick传递参数
onClick={this.Mallclose.bind(this,e,index)}
windseek
2019/01/02
2.8K0
React报错之Expected `onClick` listener to be a function
当我们为元素的onClick属性传递一个值,但是该值却不是函数时,会产生"Expected onClick listener to be a function"报错。为了解决该报错,请确保只为元素的onClick属性传递函数。
chuckQu
2022/08/19
1.1K0
React报错之Expected `onClick` listener to be a function
React技巧之设置onClick监听器
原文链接:https://bobbyhadz.com/blog/react-onclick-link[1]
chuckQu
2022/08/19
6920
React技巧之设置onClick监听器
ie6下a标签的onclick不执行问题
代码: <a href="javascript:void(0)" onclick="loadiframe()">点我咯</a> <script> var loadiframe = function(){ alert('弹不出来!!!') } </script> 解决方案: 1、修改为href="##",为什么是两个#,因为一个#会往上跳; 2、修改为href="javascript: void loadiframe()"; 3、把href 去掉; 4、onclick="lo
deepcc
2018/05/16
1.4K0
JSX onClick 和 HTML onclick 的区别
在 JSX 中可以通过 onClick 这样的方式给一个元素添加一个事件处理函数,当然,在 HTML 中也可以用 onclick (小写 c),但在 HTML 中直接书写 onclick 一直就是为人垢病的写法,网页应用开发界一直倡导的是用 jQuery 的方法添加事件处理函数,直接写 onclick 会带来代码混乱的问题。
Leophen
2021/07/08
1.8K0
React---组件的生命周期
2. 更新阶段: 由组件内部this.setSate()或父组件重新render触发
半指温柔乐
2021/04/22
9990
document.getElementById使用[通俗易懂]
getElementById() 方法可返回对拥有指定 ID 的第一个对象的引用。
全栈程序员站长
2022/09/14
4.4K0
document.getElementById详解
document.getElementById(” “) 得到的是一个对象,用 alert 显示得到的是
全栈程序员站长
2022/09/14
2.9K0
Windows凭据不工作
如果不是敲错IP、用户名、密码,报凭据不工作,一般情况下执行这几句命令后重启远程服务就正常了
Windows技术交流
2021/06/15
6.1K0
React框架基础
郭顺发
2023/07/17
1590
javascript中onclick(this)用法和onclick(this.value)用法介绍
2.onclick(this)代码详解 一般标签中会使用href和onclick两种方式来进行进行页面跳转或执行动作,但是小编一般都会使用onclick来进行执行Ajax函数进行跳转,并同时使用οnclick=”xxxxxx(this)”来传递动态参数:例子如下
全栈程序员站长
2022/07/08
1.8K0
React----组件生命周期知识点整理
如果是自定义方法,React不会自己去调用,因此一般使用变量+箭头函数的形式,将该自定义方法作为一个事件的触发函数
大忽悠爱学习
2021/11/15
1.5K0
document.getElementById的理解
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159579.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
4870
手写ReactHook核心原理,再也不怕面试官问我ReactHook原理
调用useState会返回一个state变量,以及更新state变量的方法。useState的参数是state变量的初始值,初始值仅在初次渲染时有效。
JowayYoung
2021/02/03
4.4K1
手写ReactHook核心原理,再也不怕面试官问我ReactHook原理
React思考题
1、组件为什么要大写? 2、props如何声明默认值 方法一: class Demo extends React.Component { constructor() { ...... } // static是es6的语法 static defaultProps = { age: 20 } render() { return (<div> the age is { this.props.age } </div>)
小胖
2018/06/28
4790
[边学边练]用简单实例学习React
学习之路不可停止,最近在玩 React。也动手尝试写了一个实例。借此整理总结下初步学习 React 的一些基础知识。因为这几天比较忙,没那么多时间,所以实例和文章没有很细致。如果大家发现文章有错误的地方,请多谅解。有什么更新的建议,欢迎在评论区指出。该文章主要是大概讲下和快速上手使用,如果深入,要靠自己探索,后期我也会补充文章。
守候i
2018/08/27
1.3K0
[边学边练]用简单实例学习React
React 基础实例教程
首先,需要核心库react.js与React的DOM操作组件react-dom.js
书童小二
2018/09/03
4.4K0
React  基础实例教程
onclick与addEventListener区别
这次做项目遇到了这个问题,本来习惯性的每次都写的是addEventListener绑定click事件。但是当用addEventListener绑定了多次click事件的时候,引发了我的思考,这两者有区别吗?具体的事件分析可查看另一篇文章
全栈程序员站长
2022/09/14
1.5K0
React核心工作原理
react中虚拟dom+jsx的设计一开始就有,vue则是演进过程中才出现的,2.0版本后出现。
xiaofeng123aa
2022/09/28
9570
点击加载更多

相似问题

React onClick不工作

10

React onClick事件不工作

29

React - onClick事件不工作

16

React dangerouslySetInnerHTML onClick不工作

22

React中的onClick不工作

139
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文