私はこのような2次元配列を持っています。2次元配列の.map関数の使用 - 反応
そして私は、配列の長さと同数のDIV要素を表示するには、マップ機能を使用する必要があります。
localstorageに状態を保存して、ページを更新した後にデータが消えないようにしました。
const conditions = JSON.parse(localStorage.getItem("condition")).map((condition, index) => {
return <div key={index} className="card bg-color-primary" style={{ height: "170px", width: "300px", borderColor: "#1E90FF", backgroundColor: "white", borderWidth: "2px" }}>
{_.isEmpty(this.state.rule.condition) ?
<div className="card-content" style={{ color: "black" }}>
<span className="card-title">New Condition</span>
<p>Click to edit</p>
</div> :
<div className="card-content" style={{ color: "black" }}>
<span className="card-title">{condition.property}</span>
<p>{condition.operator + " " + condition.value}</p>
</div>}
<div className="card-action">
<a href="javascript:;" style={{ color: "red" }}>OR</a>
<a href="javascript:;" style={{ color: "black" }}>AND</a>
<a onClick={this.handleOpen} style={{ color: "gray", cursor: "pointer" }}>EDIT</a>
</div>
</div>
});
このコードのスコープの後では、次のようなエラーが発生します。
Uncaught TypeError: localStorage.getItem(...).map is not a function
注:私はすでにJSON.parseを持っていますが、それは実際の問題ではありませんので、ここでそれを追加するのを忘れ。私の悪い。
'localStorage.getItemは( "条件")'配列を返しません。 – Chris
データは2D配列ではなく、キー値のペアを含むオブジェクトであり、そのキーには配列があるので、マップを実行するプロパティを指定します。 –
可能なキャッシュまたはコンパイルされていませんか? – Endless