我有一个在页面加载时<Disclosure>
设置的列表(大约 10 个)。defaultOpen
我想通过单击按钮以编程方式关闭披露。例如,按钮会读取内容close all
,单击后信息披露将关闭。
const [open, setOpen] = useState(true)
const close = () => {setOpen(false)}
<button onClick={close}>Close All</button>
<Disclosure defaultOpen>
<Disclosure.Button>Open/Close</Disclosure.Button>
<Disclosure.Panel>
<p>disclosure1</p>
</Disclosure.Panel>
</Disclosure>
<Disclosure defaultOpen>
<Disclosure.Button>Open/Close</Disclosure.Button>
<Disclosure.Panel>
<p>disclosure2</p>
</Disclosure.Panel>
</Disclosure>
<Disclosure defaultOpen>
<Disclosure.Button>Open/Close</Disclosure.Button>
<Disclosure.Panel>
<p>disclosure3</p>
</Disclosure.Panel>
</Disclosure>
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?从我发现的文档中:
<Disclosure.Panel>
{({ close }) => (
<button
onClick={async () => {
await fetch('/accept-terms', { method: 'POST' })
close()
}}
>
Read and accept
</button>
)}
</Disclosure.Panel>
Run Code Online (Sandbox Code Playgroud)
但如果不手动单击,我找不到其他任何东西来关闭它们<Disclosure.Button/>
我在C中使用emacs的代码,其中我已经收到了一个输入,如果输入使用以下任何字符我想用其余的代码替换它们.但我收到一个错误.我究竟做错了什么?
void askQuestion(char text[])
{
for (char * p = text; *p; p++)
{
switch (*p)
{
case '<':
*p = "";
break;
case '>':
*p = "";
break;
case '#':
*p = "\n";
break;
case '{':
*p = " \"";
break;
case '}':
*p = "\" ";
break;
case '[':
*p = " \'";
break;
case ']':
*p = "\' ";
break;
}
cout << *p;
}
}
Run Code Online (Sandbox Code Playgroud)
它给了我错误
"从'const char*'无效转换为'char'
如何修改此代码以更改指针?我只是希望能够打印出*p
替换值.我该怎么做呢?或者你会建议我做些不同的工作?或者换句话说,我怎么能写这个程序来修改输入.
在每个页面加载上运行if语句来检查我是否应该运行脚本是不是一个坏主意.例如,我有一个非常长的javascript文件,只需要在使用表单时运行.但是目前在我的每个文件中我都包含了document.addEventListener("turbolinks:load", function()
这意味着它会在每个页面加载时运行.
在我的脚本中,我很想在文件的开头写一个if语句,如下所示:
document.addEventListener("turbolinks:load", function() {
controller = $('body').data('controller')
action = $('body').data('action')
if controller == foo && action == bar
runScripts();
else
return;
function runscripts() {
...
Run Code Online (Sandbox Code Playgroud)
我仍然有点使用带有rails的javascript,所以我不知道另一种方式.有什么建议?
我有一个侧边栏,其位置设置为相对:
.home-left-sidebar,
.home-right-sidebar {
flex: 1;
color: rgb(66, 66, 66);
font-size: 17px;
position: relative !important;
}
Run Code Online (Sandbox Code Playgroud)
它有一个设置为固定的子项:
.left-sidebar {
position: fixed;
right: 0;
}
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,孩子并没有粘在父 div 上,而是粘在了 body 上。
<div className='home-left-sidebar '>
<LeftSidebar />
</div>
Run Code Online (Sandbox Code Playgroud)
<div className='left-sidebar'>
<div className='left-sidebar-items'>
<ul>
<NavLink to='/home/popular'>
<li>Home</li>
</NavLink>
<NavLink to='/home/new'>
<li>Newest</li>
</NavLink>
<NavLink to='/home/likes'>
<li>My Likes</li>
</NavLink>
<NavLink to='/home/user/posts'>
<li>My Posts</li>
</NavLink>
</ul>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我不知道我在这里做错了什么。
javascript ×2
reactjs ×2
c++ ×1
controller ×1
css ×1
headless-ui ×1
html ×1
if-statement ×1
pointers ×1