小编Ano*_*sSB的帖子

传播算子vs immutable.js

似乎在将redux与react结合使用时,immutable.js几乎已成为行业标准。我的问题是,当我们使用散布运算符时,是否不是一成不变地对redux状态进行更改?例如,

const reducer = (state=initialState, action) => {
    switch(action.type){
        case actionType.SOME_ACTION:
            return {
                ...state,
                someState: state.someState.filter(etc=>etc)
            }
    }
Run Code Online (Sandbox Code Playgroud)

我用redux设置状态不是一成不变的吗?使用immutable.js OVER传播算子使对象不可变的好处是什么?

很抱歉,如果有人提出这个问题,但我找不到让我满意的答案。我了解不可变对象的好处,但不了解在点运算符上使用immutable.js库的重要性。

javascript reactjs immutable.js redux

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

我需要从 axios 拦截器内部调用 mobx 操作

当 API 返回 401 时,我想强制注销用户。以下代码是使用 Mobx 在 React Native Ignite 项目中编写的

import { useStores } from "../../models"
this.apisauce.axiosInstance.interceptors.response.use(response => {
  return response;
}, error => {
  if (error.response.status === 401) {
    useStores().authStore.reset()
  }
  return error;
})
Run Code Online (Sandbox Code Playgroud)

对 authStore.reset() 的调用不会发生,没有错误,没有console.tron.log,什么也没有。有没有更好的做法来捕获401并触发mobx动作?没有在调用 API 的每个单独操作中处理它?

interceptor react-native mobx axios apisauce

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

HTML 按钮 - 按住按钮时会重复操作

我是 HTML 的新手,我正在开发一个项目,当您按住它时需要使用按钮,它会重复相同的操作。这是我得到的代码,但没有用。

    !DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Button</title>
</head>
<body>
    <button id = "forward" accesskey="o" onmousedown="display(1)" onmouseup="stop()">forward</button>


    <script>

    function stop(){
        console.log(" ")
    }
    function display(value){
        if (value == 1){
            console.log("left");}}
    </script>



</body>
</html>
Run Code Online (Sandbox Code Playgroud)

html javascript

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

查找最短的数学运算顺序

我在数学上试图确定最短的移动顺序以达到所需的数值结果。我有两个函数,两个函数都将一个数字乘以2,然后减去另一个数字的值。

到目前为止,我已经包含了我的代码,这使我可以手动调用两个函数以获得所需的结果。但是,我想帮助您弄清楚循环自动执行此操作的逻辑。

function findShortestSequence(number) {
    let left = 0;
    let right = 1;
    let moves = [];

    const moveLeft = () => {
        moves.push('L');
        left = 2 * left - right;
    }

    const moveRight = () => {
        moves.push('R');
        right = 2 * right - left;
    }

    moveLeft();
    moveLeft();
    moveRight();
    moveLeft();

    console.log(left, right, moves);
}

findShortestSequence(-11)
Run Code Online (Sandbox Code Playgroud)

javascript algorithm

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