我使用 Stencil 创建了一个输入 Web 组件:
...
export class Input {
@Prop({ mutable: true }) value: string;
@Event() changed: EventEmitter<KeyboardEvent>;
private handleChange (e) {
this.value = e.target?.value;
this.changed.emit(e);
}
render() {
return (
<div class="inputContainer">
<input
type="text"
value={this.value}
onInput={this.handleChange}
/>
</div>
)
}
}
Run Code Online (Sandbox Code Playgroud)
然后尝试在 React jsx 文件中使用它后,onChanged 不会调用 console.log
...
function App() {
return (
<div className="App">
// does not call console.log
<ui-input onChanged={(e) => console.log(e)}/>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
正如我到目前为止所读到的,这是因为 React 使用合成事件而不是 Dom 事件。
有没有办法在 JSX 元素中使用 Dom 事件?
我必须在端点上发送当前语言。但是从 Cookie 获取语言会返回 undefined inside getServerSideProps。
export async function getServerSideProps(context) {
const lang = await Cookie.get('next-i18next')
const res = await fetch(`endpoint/${lang}`)
const data = await res.json()
return {
props: { data },
}
}
export default Index;
Run Code Online (Sandbox Code Playgroud)
将 cookie 放入内部的正确方法是什么getServerSideProps?
提前致谢!