小编Win*_*ter的帖子

redux saga选择器,我如何从传奇中访问状态?

之前已经提出了类似的问题,但答案对我没有任何帮助.

redux中的选择器是什么?

如何从redux-saga函数中的状态/商店中获取内容?

我认为我有一个不同的设置,因为我似乎无法从我的传奇访问状态.

我试过做:

const getList = store => store;
const getList = state=> state;
Run Code Online (Sandbox Code Playgroud)

这些都回归了undefined.

我的商店看起来像这样......

export default function createStoreWithMiddleware() {
    const sagaMiddleware = createSagaMiddleware();
    const loggerMiddleware = createLogger();
    const middleware = [sagaMiddleware, loggerMiddleware];
    const persistedState = localStorage.getItem('reduxState') ? JSON.parse(localStorage.getItem('reduxState')) : {};

    const store = createStore(reducer, persistedState, compose(
        applyMiddleware(...middleware)
    ));

    store.subscribe(() => {
        localStorage.setItem('reduxState', JSON.stringify(store.getState()));
    });

    sagaMiddleware.run(rootSaga);

    return store;
}
Run Code Online (Sandbox Code Playgroud)

我想在这个传奇中访问我的列表:

function* selectTender(action) {
    try {
        const response = yield Api.getTenderById(action.payload);
        yield put({type: 'SELECT_TENDER_SUCCEEDED', currentTender: response}); …
Run Code Online (Sandbox Code Playgroud)

reactjs redux-saga react-redux

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

在React中使用componentWillMount或componentDidMount生命周期函数进行异步请求

我正在阅读反应生命周期,我感到有点困惑.有人建议使用componentWillMount进行ajax调用:

https://hashnode.com/post/why-is-it-a-bad-idea-to-call-setstate-immediately-after-componentdidmount-in-react-cim5vz8kn01flek53aqa22mby

在componentDidMount中调用setState将触发另一个render()调用,它可能导致布局颠簸.

而在其他地方,它说不要在componentWillMount中放置ajax调用:

https://medium.com/@baphemot/understanding-reactjs-component-life-cycle-823a640b3e8d

...在调用初始渲染之前,此函数最终可能会被多次调用,因此可能会导致触发多个副作用.由于这一事实,不建议将此功能用于任何引起副作用的操作.

哪个是对的?

javascript ajax reactjs

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

array.map 正在改变我的原始数组

我正在尝试更新数组中对象的字段。

我的对象(简化)看起来像这样:

{
  "readableStructure": [
    {
      "ID": "1",
      "Name": "Name 1",
      "Description": "Adding, updating or removing users",
      "IconName": "fas fa-users-cog"
    },
    {
      "ID": "2",
      "Name": "Name 2",
      "Description": "Views overview",
      "IconName": "fas fa-street-view"
    },
    {
      "ID": "3",
      "Name": "Name 3",
      "Description": "Improvements to apps",
      "IconName": "fas fa-broadcast-tower"
    },
    {
      "ID": "4",
      "Name": "Name 4",
      "Description": "Managing badges",
      "IconName": "fas fa-id-badge"
    },
    {
      "ID": "5",
      "Name": "Name 5",
      "Description": "Art",
      "IconName": "fas fa-hand-holding-heart"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我这样称呼它:

prepareRepositories(this.props.primarySearchRepositories);
Run Code Online (Sandbox Code Playgroud)

我可以有几个类似的存储库,然后循环浏览它们。对于数组中的每个项目,readableStructure我尝试添加一个名为 …

javascript arrays object

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

多个lambda函数如何工作?

我找到了一个脚本示例,其中有一行代码如下所示:

fn = (arg1) => (arg2) => {
    //do something with arg1 and arg2
}
Run Code Online (Sandbox Code Playgroud)

我想知道这里到底发生了什么,它看起来像一个"正常"的功能?

javascript ecmascript-6

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

样式输入类型范围,不同浏览器的高度差异

我正在尝试为“范围”类型的输入设置样式,使其在多个浏览器中看起来相同。

我找到了一些我使用过的简洁资源......

https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/

http://danielstern.ca/range.css/#/

http://www.cssportal.com/style-input-range/

……但有一个问题似乎没有得到解决。那就是 Firefox 和其他浏览器将输入的高度视为轨道和拇指组合的高度(或类似的东西),但是,Chrome 似乎只将轨道的高度视为轨道的高度整个输入。

这是我的代码(精简版):

.container {
  border: 1px solid red;
  background-color: lightgreen;
  margin-top: 10px;
}

p {
  border: 1px solid blue;
  margin: 0;
  padding: 0;
}

input[type=text],
input[type=range] {
  -webkit-appearance: none;
  width: 200px;
  margin: 0;
  padding: 0;
  display: block;
  height: 50px;
}

input[type=range]:focus {
  outline: none;
}

input[type=range]::-webkit-slider-runnable-track {
  width: 100%;
  height: 4px;
  cursor: pointer;
  animate: 0.2s;
  background: #ccc;
  border: 1px solid #333;
}

input[type=range]::-webkit-slider-thumb {
  border: 1px solid #333;
  height: 30px;
  width: 8px; …
Run Code Online (Sandbox Code Playgroud)

html css

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