小编Ste*_*sen的帖子

React hooks:在子组件中调用调度时父组件不更新

我一直在遵循使用 useContext 将减速器传递给子组件的指南,但是当从子组件分派时,它似乎没有重新渲染父组件。

从子组件分派时,状态本身似乎正确更新(如通过 console.logging state.count 完成的),但父组件不反映状态的更改。

我尝试将调度函数作为道具传递给 Child,这确实更新了 App.js,但我认为我的方法更干净,我可能会做错什么。我还放入{state.count}了 Child.js 并且它确实得到了正确更新,但对于这种情况我需要它在父组件中。这是代码:

应用程序.js

import React, { useReducer } from 'react';
import { StateProvider } from './reducer';
import Child from './Child'

function App() {
    const reducer = (state, action) => {
        switch (action.type) {
            case 'add':
                console.log(state.count+1)
                return {...state, count: state.count + 1}
            default:
                throw new Error();
        }
    }

    const initialState = {count: 1};
    const [state, dispatch] = useReducer(reducer, initialState)

    return (
        <StateProvider initialState={initialState} reducer={reducer}>
            <div className="App">
                {state.count}
                <Child></Child> …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-hooks

5
推荐指数
1
解决办法
2928
查看次数

docx 模块:UserWarning:不推荐使用 style_id 进行样式查找。改用样式名称作为键。

我在这里运行一个代码:

import docx, os
os.chdir('C:\\PythonScripts')
doc = docx.Document()
doc.add_paragraph('Hello World!')
doc.paragraphs[0].style = 'Heading6'
doc.save('test.docx')
Run Code Online (Sandbox Code Playgroud)

我在标题中得到了那个警告。该脚本仍然有效,但我认为我在最新更新中做了一些过时的事情。我该如何正确地做到这一点?

python-3.x

2
推荐指数
1
解决办法
2318
查看次数

如何在 QTableWidget 中自定义排序行为

如何更改列排序行为,而不是像这样按字母顺序排序:

1、11.1、2、22.2、3 等

它将按数字排序,如下所示:

1、2、3、11.1、22.2 等

我需要仅更改特定列上的排序行为,而不是整个表上的排序行为,因为我想保持名称的正常字母顺序。

我还有一个包含文件大小的列。它们以 MB 和 GB 表示,我想对其进行排序,以便 800 MB 排在前面,1.4 GB 排在后面。它还存在字母排序的问题。有没有一种方法可以做到这一点?

python sorting pyqt qtablewidget pyqt5

2
推荐指数
1
解决办法
2861
查看次数