【发布时间】:2019-05-03 07:44:09
【问题描述】:
谁能解释一下,为什么我不能在 React 状态钩子上运行 JavaScript 映射函数?
const [sequenceNames, setSequenceNames] = useState(null);
useEffect(() => {
fetch('/savedFiles')
.then(response => response.json())
.then(data => setSequenceNames(data));
}, []);
const table = sequenceNames.map(name => Sequence(name));
这适用于 for in 循环,但我的 linter 禁止使用 for in。
const table = [];
for (const name in sequenceNames) {
table.push(Sequence(sequenceNames[name]));
}
当我使用 .map 时,虽然我收到以下错误。
TypeError: Cannot read property 'map' of null
at main.a21158832f7ed8c55e25.bundle.js:1
at Bi (main.a21158832f7ed8c55e25.bundle.js:1)
at main.a21158832f7ed8c55e25.bundle.js:1
at f (main.a21158832f7ed8c55e25.bundle.js:1)
at d (main.a21158832f7ed8c55e25.bundle.js:1)
at main.a21158832f7ed8c55e25.bundle.js:1
即使我的sequenceNames 数组不应该为空。
【问题讨论】:
标签: javascript reactjs for-loop