我正在为我的应用程序使用nextjs。在更新页面的查询参数时,页面应重新呈现。由于某种原因,这没有发生。一些在线文章建议我们应该在componentWillReceiveProps中获得新的查询道具,但这也没有发生。需要帮助。
/ -----模块/my-component.js ------ /
def testPass(cryptPass):
salt = cryptPass[0:2]
dictFile = open('dictionary-1.txt', 'r')
for word in dictFile.readlines():
word = word.strip('\n')
cryptWord = crypt.crypt(word,salt)
if (cryptWord == cryptPass):
print "[+] Found Password: "+word+"\n"
return
print "[-] Password Not Found.\n"
return
def main():
passFile = open('/root/homework/HomeworkW8.zip')
for line in passFile.readlines():
if ":" in line:
user = line.split(':')[0]
cryptPass = line.split(':')[1].strip(' ')
print "[*] Crackin Password For: "+user
testPass(cryptPass)
if __name__ == "__main__":
main()
/ ----- pages / logs.js ------ /
import { Component } from 'react'
import Router from 'next/router'
class MyComponent extends Component {
someEvent = () => {
Router.push({
pathname: '/logs',
query: { keyword: 'blah' }
})
}
render(){
return (
<div onClick={this.someEvent}>Click Me</div>
)
}
}
export default MyComponent
答案 0 :(得分:0)
首先,我发现您的someEvent = keyword => {
函数有些奇怪。那是实际的代码,还是您为SO创建的示例?
因为如果您这样称呼它:<div onClick={this.someEvent}>Click Me</div>
,那么keyword
实际上将是一个事件,而不是关键字。
似乎您没有在props
组件的JSX中引用Logs
。您应该尝试引用它。
第三,对withRouter(Logs)
的调用是什么?那不是标准。默认情况下,在Next.js中,应该默认导出组件。
您是否正在使用自定义路由器?如果是这样,则可能无法使用'next/router'
中的函数。带有自己的路由器的Next.js。
尝试默认情况下导出组件,并确保keyword
是实际关键字,而不是事件。