【发布时间】:2019-05-12 04:15:36
【问题描述】:
我的checker() 函数确定用户的输入 (checkedNumber) 在我的素数数据库中是否匹配。如果有,我需要 updateCheckedNumber() 运行,以便 checkedNumber.matchingPrime 使用该质数更新。我不知道如何将质数传递给突变。
这是我的组件的代码。目前,我正在硬编码 matchingPrime 以更新为“100”。这正确反映在数据库中。
class Prime extends Component {
updateCheckedNumber = async (checkedNumber) => {
await this.props.updateCheckedNumber({
variables: {
id: checkedNumber.id,
matchingPrime: checkedNumber.matchingPrime
},
update: store => {
const data = store.readQuery({ query: CheckedNumbersQuery });
data.checkedNumbers = data.checkedNumbers.map(
x =>
x.id === checkedNumber.id
? {
...checkedNumber, matchingPrime: "100"
}
: x
);
store.writeQuery({ query: CheckedNumbersQuery, data });
}
})
}
checker = () => {
let primes = (this.props.data.primeNumbers)
let nums = this.props.checkedNumbersFromParent;
let recentCheckedObject = (nums[nums.length - 1]);
let recentCheckedNumber = (nums[nums.length - 1].text);
let recentCheckedRegExp = new RegExp(recentCheckedNumber);
for (var i in primes) {
let count = 0;
if (primes[i].text.search(recentCheckedRegExp) >= 0 && count < 1) {
count = count + 1;
this.updateCheckedNumber(recentCheckedObject);
}
}
}
这是我的服务器端的解析器:
const resolvers = {
Query: {
primeNumbers: () => PrimeNumber.find(),
checkedNumbers: () => CheckedNumber.find()
},
Mutation: {
createCheckedNumber: async (_, {text}) => {
const checkedNumber = new CheckedNumber({text, matchingPrime: "nada"});
await checkedNumber.save();
return checkedNumber;
},
updateCheckedNumber: async (_, {id, matchingPrime}) => {
await CheckedNumber.findByIdAndUpdate(id, {matchingPrime});
return true;
},
非常感谢您查看此内容。
【问题讨论】:
-
你在用
react-apollo吗? -
是的,我正在使用 react-apollo
-
因为需要房间,我将发布一个答案。它可能无法一劳永逸地解决它。
-
明白。非常感谢,凯尔。
标签: reactjs mongodb graphql react-apollo