小编Gre*_*nce的帖子

为什么我的React组件渲染两次被调用,一次没有数据,然后又有数据,但是为时已晚,异常呢?

我有一个组件TreeNav,其数据来自api调用。我已经设置了reducer / action / promise和所有管道,但是在组件渲染中,当我对数据调用map()时,得到“ Uncaught TypeError:无法读取未定义的属性'map'”。

故障排除显示TreeNav render()被调用两次。第二次是从api返回数据之后。但是由于第一个render()错误,第二个render()从未运行。

这是我的代码文件:

-------- reducers / index.js ---------

import { combineReducers } from 'redux';
import TreeDataReducer from './reducer_treedata';

const rootReducer = combineReducers({
  treedata: TreeDataReducer
});

export default rootReducer;
Run Code Online (Sandbox Code Playgroud)

-------- reducers / reducer_treedata.js ---------

import {FETCH_TREE_DATA} from '../actions/index';

export default function (state=[], action) {
    switch (action.type) {
        case FETCH_TREE_DATA: {
            return [action.payload.data, ...state];
        }
    }

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

-------- actions / index.js --------

import axios from 'axios';

const ROOT_URL = 'http://localhost:8080/api';

export const FETCH_TREE_DATA …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs redux react-redux

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

在Python中迭代文件对象不起作用,但readlines()确实有效但效率低下

在以下代码中,如果我使用:

for line in fin:
Run Code Online (Sandbox Code Playgroud)

它只执行'a'

但如果我使用:

wordlist = fin.readlines()
for line in wordlist:
Run Code Online (Sandbox Code Playgroud)

然后它执行直通z.

但是立即readlines()读取整个文件,这是我不想要的.

怎么避免这个?

def avoids():
    alphabet = 'abcdefghijklmnopqrstuvwxyz'
    num_words = {}

    fin = open('words.txt')

    for char in alphabet:
      num_words[char] = 0
      for line in fin:
        not_found = True
        word = line.strip()
        if word.lower().find(char.lower()) != -1:
          num_words[char] += 1
    fin.close()
    return num_words
Run Code Online (Sandbox Code Playgroud)

python

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

标签 统计

javascript ×1

python ×1

react-redux ×1

reactjs ×1

redux ×1