我正在尝试将我的项目从使用v3移植react-router到现在调用的v4 react-router-dom.现在问题出现在我有一个MenuBar组件,它完全独立于路由逻辑(正如你所期望的那样),因为无论当前路径是什么,它都会显示完全相同的链接.现在这与v3完美配合,但现在当我正在使用时NavLink,它具有相同的activeClassName属性,活动路由不会在NavBar上更新,仅在刷新时.这似乎有点愚蠢,所以必须有办法解决这个问题.
export default @inject('ui') @observer class App extends Component {
render() {
return (
<Router>
<div className={ styles.wrapper }>
<Sidebar />
<main className={ `${styles.main} ${!this.props.ui.menuOpen && styles.closed}` }>
<Route exact path="/" component={ HomePage } />
<Route path="/signup" component={ SignUpPage } />
<Route path="/login" component={ LoginPage } />
<Route path="/about" component={ AboutPage } />
</main>
<footer className="site-footer"></footer>
</div>
</Router>
);
}
}Run Code Online (Sandbox Code Playgroud)
以上是我的主要App逻辑,你可以看到路由是嵌套的,但路由器本身包裹整个组件.
我应该添加什么才能使它们再次工作?(它们在页面刷新时可以正常工作)
我想创建一个Class,它也是常规 的包装器Array,但是我希望在通过索引引用类实例上的项目时发生一些自定义行为。
演示我想要实现的目标:
class Custom {
constructor (arr) {
this.arr = arr;
}
method (str) {
this.arr.forEach(item => {
console.log(`${item} ${str}`);
})
}
[Magic.here] () {
// this part should invoke the constructor of this class with a single item of the array passed into it as an array of one as argument.
}
}
let c = new Custom(['something', 'other thing', 'hello?']);
c[1].method('exists?') // -> other thing exists?
Run Code Online (Sandbox Code Playgroud)
现在,我并不完全确定这是可能的。extend我确实通过ing 设法提出了自己不太好的解决方案Array。Proxy …
在个人项目中,我正在实现一个从长文件中返回随机行的函数。为了让它工作,我必须创建一个在第 N 行返回字符串的函数,第二个函数在文件中创建 0 和行之间的随机数。当我实现这些时,我认为默认情况下将数据存储在字节片中可能更有效,而不是将它们存储在必须在运行时读取的单独文件中。
问题:我将如何实现一个在[]byte文件表示的随机行返回字符串的函数。
我从文件中获取字符串的函数:
func atLine(n int) (s string) {
f, err := os.Open("./path/to/file")
if err != nil {
panic("Could not read file.")
}
defer f.Close()
r := bufio.NewReader(f)
for i := 1; ; i++ {
line, _, err := r.ReadLine()
if err != nil {
break
}
if i == n {
s = string(line[:])
break
}
}
return s
}
Run Code Online (Sandbox Code Playgroud)
附加信息:
[]bytejavascript ×2
arrays ×1
byte ×1
class ×1
constructor ×1
ecmascript-6 ×1
go ×1
random ×1
react-router ×1
reactjs ×1
slice ×1
string ×1