小编wan*_*v87的帖子

即使 React.memo 返回 true,子组件也会在父组件重新渲染时重新渲染

我有一个嵌套组件,用于发起上传图像的 HTTP 请求。它显示进度。

\n
const PreviewItem = React.memo(function PreviewItem(props: PreviewItemProps) {\n    const {fileObject, handleRemove, classes, onUploadFinished} = props\n\n    const [isLoading, setIsLoading] = useState(false)\n    const [completed, setCompleted] = useState(0);\n\n    const cancelTokenSource = axios.CancelToken.source();\n\n    useEffect(() => {\n        const data = new FormData();\n        data.append('file', fileObject.file);\n\n        const config: AxiosRequestConfig = {\n            onUploadProgress: function (progressEvent) {\n                const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);\n                setCompleted(percentCompleted)\n            },\n            cancelToken: cancelTokenSource.token\n        };\n\n        if (!fileObject.isUploaded) {\n            setIsLoading(true)\n            avantiApi.post<DirectUploadResponse>("images/upload", data, config).then(response => {\n\n                setIsLoading(false)\n\n                if (onUploadFinished) {\n                    onUploadFinished(response.data, fileObject)\n                }\n …
Run Code Online (Sandbox Code Playgroud)

reactjs react-hooks

7
推荐指数
1
解决办法
1465
查看次数

React 不会在数组状态更新时重新渲染

我正在尝试制作 3 个按钮控件来打开和关闭 3 个相应的菜单列表。Material-UI是我目前使用的UI框架。这是代码:


const Filters = () => {

    const [anchors, setAnchors] = useState([null, null, null])

    const handleClick = (event, index) => {
        const arr = anchors
        arr[index] = event.target
        setAnchors(arr)    
    }

    const handleClose = (index) => {
        const arr = anchors
        arr[index] = null
        setAnchors(arr)  
    }

    return(
        <div id="top-filters">
            <div className="controls">
                <Button onClick={(event) => handleClick(event, 0)}>Sort By</Button>
                <Button onClick={(event) => handleClick(event, 1)}>Price</Button>
                <Button onClick={(event) => handleClick(event, 2)}>Delivery Fees</Button>
            </div>
        {
            console.log({anchors})
        }
            <Menu key={1}
                anchorEl={anchors[0]} 
                open={Boolean(anchors[0])} 
                onClose={() …
Run Code Online (Sandbox Code Playgroud)

reactjs material-ui react-hooks

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

无法在 useEffect 挂钩内设置状态

我可以看到包含用户数组的响应对象,但似乎 setState 在钩子内不起作用useEffect()

这是请求代码。

     const [users,setUsers] = useState([]);
     const getUsers=async()=>{
         await axios.get(API_URL,{
             headers:{
                 'Content-Type': 'application/json',
                     'Accept': 'application/json',
                     'Access-Control-Allow-Origin': '*'
             }
         })
         .then((res)=>{
            const data = res.data.users;
             console.log(data);
            setUsers([...users,data]);
            console.log(users);
            
         })
         .catch((err)=>{
             console.log(err);
         })
     }
     useEffect(()=>{
         
         getUsers();
     },[])
Run Code Online (Sandbox Code Playgroud)

reactjs axios react-hooks use-effect use-state

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

反应插入字符串内部

var result = "I am a dog";
var searchterm = "a";
Run Code Online (Sandbox Code Playgroud)

如何在每个“a”和“)”之前插入“(”在每个“a”之后,所以新结果是

newresult = "I (a)m (a) dog"
Run Code Online (Sandbox Code Playgroud)

javascript string replace reactjs

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

Javascript 在对象内部动态创建对象

我有一个空对象,想在对象内部动态创建一个对象。

const obj = {}
obj["test1"]["test1.1"] = x //initialize to some variable
Run Code Online (Sandbox Code Playgroud)

我收到错误

Uncaught TypeError: Cannot set property 'test1.1' of undefined
Run Code Online (Sandbox Code Playgroud)

我希望输出是这样的

obj = {
   test1: {
       test1.1: x //some variable
   }
}
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

0
推荐指数
1
解决办法
1242
查看次数

如何根据数组总和对对象进行排序?React.js

所以我有 data.js 存储我的 JSON ......它看起来像这样:

[
    {
        name: 'Adam Doe',
        city: 'New York',
        mark: [8,10,10,10]
    },
    {
        name: 'Catlyn Stronk',
        city: 'Las Vegas',
        mark: [2,2,2,2,2,3,3,3,4]
    },
    {
        name: 'Anna Doe',
        
        city: 'Michigan',
        mark: [10,8,8,4,3,2]
    }
]
Run Code Online (Sandbox Code Playgroud)

如何制作一个数组并将得分最高的人放在首位?因此,由于 Adam Doe 将获得 9.5 分的最高分,因此他应该排在第一位,依此类推......我在 React.js 工作

javascript reactjs

0
推荐指数
1
解决办法
55
查看次数

如何合并两个具有重复键和值的对象

我有两个对象如下:

const a = {
  '2021-1': 10,
  '2021-2': 8
}
const b = {
  '2021-1': 10,
  '2020-3': 10,
  '2020-4': 15,
  '2020-5': 12,
  '2020-6': 4
}
Run Code Online (Sandbox Code Playgroud)

我想合并两个对象并总结重复键的值。

预期结果是:

{
  '2021-1': 20,
  '2021-2': 8,
  '2020-3': 10,
  '2020-4': 15,
  '2020-5': 12,
  '2020-6': 4
}
Run Code Online (Sandbox Code Playgroud)

javascript javascript-objects

0
推荐指数
1
解决办法
692
查看次数