Javascript 如何使用redux传奇从redux商店获取商品:已解决
编辑:结尾处的解决方案 因此,我从API获取了数据,并将其存储到我的Redux存储中。这是一个对象数组,包含100个左右的对象。在前端,我显示了每个对象的4个关键点 我现在要做的是在前端,按键(名称或年份)搜索并呈现结果。理想情况下,它与PSQL中的ILIKE类似,但即使只有当e.target.value==obj.super.nested.key | | obj.super.nested.key|two时才有结果,也会令人惊讶 我尝试过使用redux saga/effects中的select()但没有效果 我最初尝试的是在更改输入字段时,以e.target.value作为参数向观察者发送一个操作,该参数将调用一个函数,使用该值作为select()的参数 使用PSQL而不是redux saga的代码是:Javascript 如何使用redux传奇从redux商店获取商品:已解决,javascript,reactjs,redux,redux-saga,Javascript,Reactjs,Redux,Redux Saga,编辑:结尾处的解决方案 因此,我从API获取了数据,并将其存储到我的Redux存储中。这是一个对象数组,包含100个左右的对象。在前端,我显示了每个对象的4个关键点 我现在要做的是在前端,按键(名称或年份)搜索并呈现结果。理想情况下,它与PSQL中的ILIKE类似,但即使只有当e.target.value==obj.super.nested.key | | obj.super.nested.key|two时才有结果,也会令人惊讶 我尝试过使用redux saga/effects中的select(
const [val, setVal] = useState("");
---------------------------------------------
useEffect(() => {
if (val.length >= 3) {
axios.get(`/searchCards/${val}.json`).then(results => {});
} else if (val.length <= 3) {
setCard("");
}
}, [val]);
---------------------------------------------
function handleChange(e) {
e.preventDefault();
setVal(e.target.value);
}
----------------------------------------------
<form noValidate onSubmit={e => this.submit(e)}>
<input
noValidate
name="searchValue"
placeholder="name"
onChange={e => handleChange(e)}
/>
<br />
<br />
<input onChange={e => handleChange(e)} type="date" />
</form>
我如何通过redux saga实现同样的功能,搜索按值存储并返回包含该值的整个对象
解决方案 如果有人想知道,我已经找到了解决办法。关于redux传奇的文档不是很丰富,所以我用我知道的唯一方法来做 基本上,当组件装载时,我从api请求数据并将其存储在redux存储中。一旦它在商店里,我就在FE上渲染它 因为在更改输入字段时,我只想显示以前显示的数据的某些部分,所以我制作了一个三元结构,表示如果输入字段值存在/更改,则映射到存储并返回输入值所在的位置。toLowerCase()。StartStWithStartSwith(存储中的值),否则,返回所有数据 它就像一个符咒 如果有人有其他想法,我很乐意听听。解决方案 如果有人想知道,我已经找到了解决办法。关于redux传奇的文档不是很丰富,所以我用我知道的唯一方法来做 基本上,当组件装载时,我从api请求数据并将其存储在redux存储中。一旦它在商店里,我就在FE上渲染它 因为在更改输入字段时,我只想显示以前显示的数据的某些部分,所以我制作了一个三元结构,表示如果输入字段值存在/更改,则映射到存储并返回输入值所在的位置。toLowerCase()。StartStWithStartSwith(存储中的值),否则,返回所有数据 它就像一个符咒
如果有人有其他想法,我很乐意听到。如果你认为解决这个问题的方法对其他人有帮助,你可以发布自己问题的答案,并将其勾选为已接受(这是StackOverflow相当于标题中论坛风格的“已解决”),在主题中添加“已解决”并不是StackOverflow的工作方式,也不是添加问题中的“解决方案”部分。
app.get("/searchCards/:str.json", (req, res) => {
db.findCard(req.params.str)
.then(results => {
let result = results.rows[0].name;
res.json({ result });
})
.catch(err => {
console.log("error in searching for cards by name: ", err.message);
res.json(null);
});
});
exports.findCard = function findCard(str) {
return db.query(`SELECT * FROM cards WHERE name ILIKE $1 LIMIT 1`, [
str + "%"
]);
};